From 35a6d3eb45abd6b5f43114161afa45e5feaaa5f0 Mon Sep 17 00:00:00 2001 From: Markus Kalkbrenner Date: Wed, 23 Apr 2025 21:44:27 +0200 Subject: [PATCH 1/3] switch to libserum_concentrate to lower memory footprint, onyl require HD frames if ZeDMD HD is detected --- platforms/android/arm64-v8a/external.sh | 2 +- platforms/config.sh | 2 +- platforms/ios-simulator/arm64/external.sh | 2 +- platforms/ios/arm64/external.sh | 2 +- platforms/linux/aarch64/external.sh | 2 +- platforms/linux/x64/external.sh | 2 +- platforms/macos/arm64/external.sh | 2 +- platforms/macos/x64/external.sh | 2 +- platforms/tvos/arm64/external.sh | 2 +- platforms/win/x64/external.sh | 2 +- platforms/win/x86/external.sh | 2 +- src/DMD.cpp | 7 +++---- 12 files changed, 14 insertions(+), 15 deletions(-) diff --git a/platforms/android/arm64-v8a/external.sh b/platforms/android/arm64-v8a/external.sh index 85cf3463..2d75ffef 100755 --- a/platforms/android/arm64-v8a/external.sh +++ b/platforms/android/arm64-v8a/external.sh @@ -52,7 +52,7 @@ cd .. # build libserum and copy to external # -curl -sL https://github.com/zesinger/libserum/archive/${LIBSERUM_SHA}.tar.gz -o libserum-${LIBSERUM_SHA}.tar.gz +curl -sL https://github.com/PPUC/libserum_concentrate/archive/${LIBSERUM_SHA}.tar.gz -o libserum-${LIBSERUM_SHA}.tar.gz tar xzf libserum-${LIBSERUM_SHA}.tar.gz mv libserum-${LIBSERUM_SHA} libserum cd libserum diff --git a/platforms/config.sh b/platforms/config.sh index 7c02444f..6791c125 100755 --- a/platforms/config.sh +++ b/platforms/config.sh @@ -3,7 +3,7 @@ set -e LIBZEDMD_SHA=154772800e8f36378c629f066bfee563862728ac -LIBSERUM_SHA=b0cc2a871d9d5b6395658c56c65402ae388eb78c +LIBSERUM_SHA=708183391968307e1b45f9e60cf033fdd1d31f7d LIBPUPDMD_SHA=124f45e5ddd59ceb339591de88fcca72f8c54612 if [ -z "${BUILD_TYPE}" ]; then diff --git a/platforms/ios-simulator/arm64/external.sh b/platforms/ios-simulator/arm64/external.sh index f10ca998..ef1cccda 100755 --- a/platforms/ios-simulator/arm64/external.sh +++ b/platforms/ios-simulator/arm64/external.sh @@ -46,7 +46,7 @@ cd .. # build libserum and copy to external # -curl -sL https://github.com/zesinger/libserum/archive/${LIBSERUM_SHA}.tar.gz -o libserum-${LIBSERUM_SHA}.tar.gz +curl -sL https://github.com/PPUC/libserum_concentrate/archive/${LIBSERUM_SHA}.tar.gz -o libserum-${LIBSERUM_SHA}.tar.gz tar xzf libserum-${LIBSERUM_SHA}.tar.gz mv libserum-${LIBSERUM_SHA} libserum cd libserum diff --git a/platforms/ios/arm64/external.sh b/platforms/ios/arm64/external.sh index b150381e..12a048b8 100755 --- a/platforms/ios/arm64/external.sh +++ b/platforms/ios/arm64/external.sh @@ -46,7 +46,7 @@ cd .. # build libserum and copy to external # -curl -sL https://github.com/zesinger/libserum/archive/${LIBSERUM_SHA}.tar.gz -o libserum-${LIBSERUM_SHA}.tar.gz +curl -sL https://github.com/PPUC/libserum_concentrate/archive/${LIBSERUM_SHA}.tar.gz -o libserum-${LIBSERUM_SHA}.tar.gz tar xzf libserum-${LIBSERUM_SHA}.tar.gz mv libserum-${LIBSERUM_SHA} libserum cd libserum diff --git a/platforms/linux/aarch64/external.sh b/platforms/linux/aarch64/external.sh index 26175873..3bdc5fd9 100755 --- a/platforms/linux/aarch64/external.sh +++ b/platforms/linux/aarch64/external.sh @@ -50,7 +50,7 @@ cd .. # build libserum and copy to external # -curl -sL https://github.com/zesinger/libserum/archive/${LIBSERUM_SHA}.tar.gz -o libserum-${LIBSERUM_SHA}.tar.gz +curl -sL https://github.com/PPUC/libserum_concentrate/archive/${LIBSERUM_SHA}.tar.gz -o libserum-${LIBSERUM_SHA}.tar.gz tar xzf libserum-${LIBSERUM_SHA}.tar.gz mv libserum-${LIBSERUM_SHA} libserum cd libserum diff --git a/platforms/linux/x64/external.sh b/platforms/linux/x64/external.sh index d328897b..9ed2e966 100755 --- a/platforms/linux/x64/external.sh +++ b/platforms/linux/x64/external.sh @@ -50,7 +50,7 @@ cd .. # build libserum and copy to external # -curl -sL https://github.com/zesinger/libserum/archive/${LIBSERUM_SHA}.tar.gz -o libserum-${LIBSERUM_SHA}.tar.gz +curl -sL https://github.com/PPUC/libserum_concentrate/archive/${LIBSERUM_SHA}.tar.gz -o libserum-${LIBSERUM_SHA}.tar.gz tar xzf libserum-${LIBSERUM_SHA}.tar.gz mv libserum-${LIBSERUM_SHA} libserum cd libserum diff --git a/platforms/macos/arm64/external.sh b/platforms/macos/arm64/external.sh index 4a3c75a5..fe0500e0 100755 --- a/platforms/macos/arm64/external.sh +++ b/platforms/macos/arm64/external.sh @@ -50,7 +50,7 @@ cd .. # build libserum and copy to external # -curl -sL https://github.com/zesinger/libserum/archive/${LIBSERUM_SHA}.tar.gz -o libserum-${LIBSERUM_SHA}.tar.gz +curl -sL https://github.com/PPUC/libserum_concentrate/archive/${LIBSERUM_SHA}.tar.gz -o libserum-${LIBSERUM_SHA}.tar.gz tar xzf libserum-${LIBSERUM_SHA}.tar.gz mv libserum-${LIBSERUM_SHA} libserum cd libserum diff --git a/platforms/macos/x64/external.sh b/platforms/macos/x64/external.sh index b675e02a..998ccd11 100755 --- a/platforms/macos/x64/external.sh +++ b/platforms/macos/x64/external.sh @@ -50,7 +50,7 @@ cd .. # build libserum and copy to external # -curl -sL https://github.com/zesinger/libserum/archive/${LIBSERUM_SHA}.tar.gz -o libserum-${LIBSERUM_SHA}.tar.gz +curl -sL https://github.com/PPUC/libserum_concentrate/archive/${LIBSERUM_SHA}.tar.gz -o libserum-${LIBSERUM_SHA}.tar.gz tar xzf libserum-${LIBSERUM_SHA}.tar.gz mv libserum-${LIBSERUM_SHA} libserum cd libserum diff --git a/platforms/tvos/arm64/external.sh b/platforms/tvos/arm64/external.sh index 7e3fd77f..f21ca3ff 100755 --- a/platforms/tvos/arm64/external.sh +++ b/platforms/tvos/arm64/external.sh @@ -46,7 +46,7 @@ cd .. # build libserum and copy to external # -curl -sL https://github.com/zesinger/libserum/archive/${LIBSERUM_SHA}.tar.gz -o libserum-${LIBSERUM_SHA}.tar.gz +curl -sL https://github.com/PPUC/libserum_concentrate/archive/${LIBSERUM_SHA}.tar.gz -o libserum-${LIBSERUM_SHA}.tar.gz tar xzf libserum-${LIBSERUM_SHA}.tar.gz mv libserum-${LIBSERUM_SHA} libserum cd libserum diff --git a/platforms/win/x64/external.sh b/platforms/win/x64/external.sh index 03ff5974..96de557b 100755 --- a/platforms/win/x64/external.sh +++ b/platforms/win/x64/external.sh @@ -52,7 +52,7 @@ cd .. # build libserum and copy to external # -curl -sL https://github.com/zesinger/libserum/archive/${LIBSERUM_SHA}.tar.gz -o libserum-${LIBSERUM_SHA}.tar.gz +curl -sL https://github.com/PPUC/libserum_concentrate/archive/${LIBSERUM_SHA}.tar.gz -o libserum-${LIBSERUM_SHA}.tar.gz tar xzf libserum-${LIBSERUM_SHA}.tar.gz mv libserum-${LIBSERUM_SHA} libserum cd libserum diff --git a/platforms/win/x86/external.sh b/platforms/win/x86/external.sh index 877d417c..f6b2b779 100755 --- a/platforms/win/x86/external.sh +++ b/platforms/win/x86/external.sh @@ -53,7 +53,7 @@ cd .. # build libserum and copy to external # -curl -sL https://github.com/zesinger/libserum/archive/${LIBSERUM_SHA}.tar.gz -o libserum-${LIBSERUM_SHA}.tar.gz +curl -sL https://github.com/PPUC/libserum_concentrate/archive/${LIBSERUM_SHA}.tar.gz -o libserum-${LIBSERUM_SHA}.tar.gz tar xzf libserum-${LIBSERUM_SHA}.tar.gz mv libserum-${LIBSERUM_SHA} libserum cd libserum diff --git a/src/DMD.cpp b/src/DMD.cpp index 21bd4892..a9d43c66 100644 --- a/src/DMD.cpp +++ b/src/DMD.cpp @@ -836,10 +836,9 @@ void DMD::SerumThread() } if (m_altColorPath[0] == '\0') strcpy(m_altColorPath, Config::GetInstance()->GetAltColorPath()); - - m_pSerum = (name[0] != '\0') - ? Serum_Load(m_altColorPath, m_romName, FLAG_REQUEST_32P_FRAMES | FLAG_REQUEST_64P_FRAMES) - : nullptr; + uint8_t flags = FLAG_REQUEST_32P_FRAMES; + if (m_pZeDMD && m_pZeDMD->GetWidth() == 256) flags |= FLAG_REQUEST_64P_FRAMES; + m_pSerum = (name[0] != '\0') ? Serum_Load(m_altColorPath, m_romName, flags) : nullptr; if (m_pSerum) { Log(DMDUtil_LogLevel_INFO, "Loaded Serum v%d colorization for %s", m_pSerum->SerumVersion, m_romName); From ed9f15144d57e11e5ddbe514ef2ccf1b8ed0edf1 Mon Sep 17 00:00:00 2001 From: Markus Kalkbrenner Date: Wed, 23 Apr 2025 21:47:07 +0200 Subject: [PATCH 2/3] added comment --- src/DMD.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/DMD.cpp b/src/DMD.cpp index a9d43c66..9a9495a9 100644 --- a/src/DMD.cpp +++ b/src/DMD.cpp @@ -837,6 +837,7 @@ void DMD::SerumThread() if (m_altColorPath[0] == '\0') strcpy(m_altColorPath, Config::GetInstance()->GetAltColorPath()); uint8_t flags = FLAG_REQUEST_32P_FRAMES; + // At the moment, ZeDMD HD is the only device supporting 64P frames. Not requesting 64P saves memory if (m_pZeDMD && m_pZeDMD->GetWidth() == 256) flags |= FLAG_REQUEST_64P_FRAMES; m_pSerum = (name[0] != '\0') ? Serum_Load(m_altColorPath, m_romName, flags) : nullptr; if (m_pSerum) From a96bf42c2987f6cb0b9ee0a0b98d73b9ee8566c1 Mon Sep 17 00:00:00 2001 From: Markus Kalkbrenner Date: Wed, 23 Apr 2025 21:53:49 +0200 Subject: [PATCH 3/3] fixed archive name --- platforms/android/arm64-v8a/external.sh | 2 +- platforms/ios-simulator/arm64/external.sh | 2 +- platforms/ios/arm64/external.sh | 2 +- platforms/linux/aarch64/external.sh | 2 +- platforms/linux/x64/external.sh | 2 +- platforms/macos/arm64/external.sh | 2 +- platforms/macos/x64/external.sh | 2 +- platforms/tvos/arm64/external.sh | 2 +- platforms/win/x64/external.sh | 2 +- platforms/win/x86/external.sh | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/platforms/android/arm64-v8a/external.sh b/platforms/android/arm64-v8a/external.sh index 2d75ffef..5dd3ff07 100755 --- a/platforms/android/arm64-v8a/external.sh +++ b/platforms/android/arm64-v8a/external.sh @@ -54,7 +54,7 @@ cd .. curl -sL https://github.com/PPUC/libserum_concentrate/archive/${LIBSERUM_SHA}.tar.gz -o libserum-${LIBSERUM_SHA}.tar.gz tar xzf libserum-${LIBSERUM_SHA}.tar.gz -mv libserum-${LIBSERUM_SHA} libserum +mv libserum_concentrate-${LIBSERUM_SHA} libserum cd libserum cmake \ -DPLATFORM=android \ diff --git a/platforms/ios-simulator/arm64/external.sh b/platforms/ios-simulator/arm64/external.sh index ef1cccda..922946bb 100755 --- a/platforms/ios-simulator/arm64/external.sh +++ b/platforms/ios-simulator/arm64/external.sh @@ -48,7 +48,7 @@ cd .. curl -sL https://github.com/PPUC/libserum_concentrate/archive/${LIBSERUM_SHA}.tar.gz -o libserum-${LIBSERUM_SHA}.tar.gz tar xzf libserum-${LIBSERUM_SHA}.tar.gz -mv libserum-${LIBSERUM_SHA} libserum +mv libserum_concentrate-${LIBSERUM_SHA} libserum cd libserum cmake \ -DPLATFORM=ios-simulator \ diff --git a/platforms/ios/arm64/external.sh b/platforms/ios/arm64/external.sh index 12a048b8..b791d0f9 100755 --- a/platforms/ios/arm64/external.sh +++ b/platforms/ios/arm64/external.sh @@ -48,7 +48,7 @@ cd .. curl -sL https://github.com/PPUC/libserum_concentrate/archive/${LIBSERUM_SHA}.tar.gz -o libserum-${LIBSERUM_SHA}.tar.gz tar xzf libserum-${LIBSERUM_SHA}.tar.gz -mv libserum-${LIBSERUM_SHA} libserum +mv libserum_concentrate-${LIBSERUM_SHA} libserum cd libserum cmake \ -DPLATFORM=ios \ diff --git a/platforms/linux/aarch64/external.sh b/platforms/linux/aarch64/external.sh index 3bdc5fd9..665c04df 100755 --- a/platforms/linux/aarch64/external.sh +++ b/platforms/linux/aarch64/external.sh @@ -52,7 +52,7 @@ cd .. curl -sL https://github.com/PPUC/libserum_concentrate/archive/${LIBSERUM_SHA}.tar.gz -o libserum-${LIBSERUM_SHA}.tar.gz tar xzf libserum-${LIBSERUM_SHA}.tar.gz -mv libserum-${LIBSERUM_SHA} libserum +mv libserum_concentrate-${LIBSERUM_SHA} libserum cd libserum cmake \ -DPLATFORM=linux \ diff --git a/platforms/linux/x64/external.sh b/platforms/linux/x64/external.sh index 9ed2e966..851b89ae 100755 --- a/platforms/linux/x64/external.sh +++ b/platforms/linux/x64/external.sh @@ -52,7 +52,7 @@ cd .. curl -sL https://github.com/PPUC/libserum_concentrate/archive/${LIBSERUM_SHA}.tar.gz -o libserum-${LIBSERUM_SHA}.tar.gz tar xzf libserum-${LIBSERUM_SHA}.tar.gz -mv libserum-${LIBSERUM_SHA} libserum +mv libserum_concentrate-${LIBSERUM_SHA} libserum cd libserum cmake \ -DPLATFORM=linux \ diff --git a/platforms/macos/arm64/external.sh b/platforms/macos/arm64/external.sh index fe0500e0..0ee051eb 100755 --- a/platforms/macos/arm64/external.sh +++ b/platforms/macos/arm64/external.sh @@ -52,7 +52,7 @@ cd .. curl -sL https://github.com/PPUC/libserum_concentrate/archive/${LIBSERUM_SHA}.tar.gz -o libserum-${LIBSERUM_SHA}.tar.gz tar xzf libserum-${LIBSERUM_SHA}.tar.gz -mv libserum-${LIBSERUM_SHA} libserum +mv libserum_concentrate-${LIBSERUM_SHA} libserum cd libserum cmake \ -DPLATFORM=macos \ diff --git a/platforms/macos/x64/external.sh b/platforms/macos/x64/external.sh index 998ccd11..782fde17 100755 --- a/platforms/macos/x64/external.sh +++ b/platforms/macos/x64/external.sh @@ -52,7 +52,7 @@ cd .. curl -sL https://github.com/PPUC/libserum_concentrate/archive/${LIBSERUM_SHA}.tar.gz -o libserum-${LIBSERUM_SHA}.tar.gz tar xzf libserum-${LIBSERUM_SHA}.tar.gz -mv libserum-${LIBSERUM_SHA} libserum +mv libserum_concentrate-${LIBSERUM_SHA} libserum cd libserum cmake \ -DPLATFORM=macos \ diff --git a/platforms/tvos/arm64/external.sh b/platforms/tvos/arm64/external.sh index f21ca3ff..14dddbc4 100755 --- a/platforms/tvos/arm64/external.sh +++ b/platforms/tvos/arm64/external.sh @@ -48,7 +48,7 @@ cd .. curl -sL https://github.com/PPUC/libserum_concentrate/archive/${LIBSERUM_SHA}.tar.gz -o libserum-${LIBSERUM_SHA}.tar.gz tar xzf libserum-${LIBSERUM_SHA}.tar.gz -mv libserum-${LIBSERUM_SHA} libserum +mv libserum_concentrate-${LIBSERUM_SHA} libserum cd libserum cmake \ -DPLATFORM=tvos \ diff --git a/platforms/win/x64/external.sh b/platforms/win/x64/external.sh index 96de557b..d14c3079 100755 --- a/platforms/win/x64/external.sh +++ b/platforms/win/x64/external.sh @@ -54,7 +54,7 @@ cd .. curl -sL https://github.com/PPUC/libserum_concentrate/archive/${LIBSERUM_SHA}.tar.gz -o libserum-${LIBSERUM_SHA}.tar.gz tar xzf libserum-${LIBSERUM_SHA}.tar.gz -mv libserum-${LIBSERUM_SHA} libserum +mv libserum_concentrate-${LIBSERUM_SHA} libserum cd libserum cmake \ -G "Visual Studio 17 2022" \ diff --git a/platforms/win/x86/external.sh b/platforms/win/x86/external.sh index f6b2b779..d41586fb 100755 --- a/platforms/win/x86/external.sh +++ b/platforms/win/x86/external.sh @@ -55,7 +55,7 @@ cd .. curl -sL https://github.com/PPUC/libserum_concentrate/archive/${LIBSERUM_SHA}.tar.gz -o libserum-${LIBSERUM_SHA}.tar.gz tar xzf libserum-${LIBSERUM_SHA}.tar.gz -mv libserum-${LIBSERUM_SHA} libserum +mv libserum_concentrate-${LIBSERUM_SHA} libserum cd libserum cmake \ -G "Visual Studio 17 2022" \