Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package mt32emu for openSUSE:Factory checked 
in at 2026-05-23 23:26:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mt32emu (Old)
 and      /work/SRC/openSUSE:Factory/.mt32emu.new.2084 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "mt32emu"

Sat May 23 23:26:45 2026 rev:15 rq:1354863 version:2.8.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/mt32emu/mt32emu.changes  2026-05-18 
17:47:16.446461353 +0200
+++ /work/SRC/openSUSE:Factory/.mt32emu.new.2084/mt32emu.changes        
2026-05-23 23:28:37.355762174 +0200
@@ -1,0 +2,7 @@
+Sat May 23 15:37:23 UTC 2026 - Martin Hauke <[email protected]>
+
+- Updated to 2.8.1
+  * Fixed function Synth::readMemory that didn't retrieve data
+    correctly from the Timbre Memory bank.
+
+-------------------------------------------------------------------

Old:
----
  munt-libmt32emu_2_8_0.tar.gz

New:
----
  munt-libmt32emu_2_8_1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ mt32emu.spec ++++++
--- /var/tmp/diff_new_pack.RVjZRP/_old  2026-05-23 23:28:37.907784710 +0200
+++ /var/tmp/diff_new_pack.RVjZRP/_new  2026-05-23 23:28:37.907784710 +0200
@@ -17,10 +17,10 @@
 
 
 %define s_name  munt-lib%{name}_%{s_ver}
-%define s_ver   2_8_0
+%define s_ver   2_8_1
 %define sover   2
 Name:           mt32emu
-Version:        2.8.0
+Version:        2.8.1
 Release:        0
 Summary:        An emulator of the Roland MT-32, CM-32L and LAPC-I synthesiser 
modules
 License:        GPL-3.0-or-later AND LGPL-2.1-or-later

++++++ munt-libmt32emu_2_8_0.tar.gz -> munt-libmt32emu_2_8_1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/munt-libmt32emu_2_8_0/mt32emu/NEWS.txt 
new/munt-libmt32emu_2_8_1/mt32emu/NEWS.txt
--- old/munt-libmt32emu_2_8_0/mt32emu/NEWS.txt  2026-05-16 18:54:32.000000000 
+0200
+++ new/munt-libmt32emu_2_8_1/mt32emu/NEWS.txt  2026-05-23 10:27:12.000000000 
+0200
@@ -1,3 +1,10 @@
+2026-05-23:
+
+       2.8.1 released.
+
+       * Fixed function Synth::readMemory that didn't retrieve data correctly 
from the Timbre
+         Memory bank. (#145)
+
 2026-05-16:
 
        2.8.0 released.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/munt-libmt32emu_2_8_0/mt32emu/cmake/project_data.cmake 
new/munt-libmt32emu_2_8_1/mt32emu/cmake/project_data.cmake
--- old/munt-libmt32emu_2_8_0/mt32emu/cmake/project_data.cmake  2026-05-16 
18:54:32.000000000 +0200
+++ new/munt-libmt32emu_2_8_1/mt32emu/cmake/project_data.cmake  2026-05-23 
10:27:12.000000000 +0200
@@ -4,5 +4,5 @@
 
 set(libmt32emu_VERSION_MAJOR 2)
 set(libmt32emu_VERSION_MINOR 8)
-set(libmt32emu_VERSION_PATCH 0)
+set(libmt32emu_VERSION_PATCH 1)
 set(libmt32emu_VERSION 
"${libmt32emu_VERSION_MAJOR}.${libmt32emu_VERSION_MINOR}.${libmt32emu_VERSION_PATCH}")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/munt-libmt32emu_2_8_0/mt32emu/src/MemoryRegion.h 
new/munt-libmt32emu_2_8_1/mt32emu/src/MemoryRegion.h
--- old/munt-libmt32emu_2_8_0/mt32emu/src/MemoryRegion.h        2026-05-16 
18:54:32.000000000 +0200
+++ new/munt-libmt32emu_2_8_1/mt32emu/src/MemoryRegion.h        2026-05-23 
10:27:12.000000000 +0200
@@ -108,6 +108,10 @@
 public:
        PatchesMemoryRegion(Bit8u *useRealMemory, Bit8u *useMaxTable) : 
MemoryRegion(useRealMemory, useMaxTable, MR_Patches, MT32EMU_MEMADDR(0x050000), 
sizeof(PatchParam), 128) {}
 };
+// Note: this region has quite a special memory layout and doesn't map 
directly to SysEx-addressable memory.
+// Aside from the actual Timbre Memory bank, we also cache the standard 
timbres extracted from the Control ROM herein.
+// Therefore, one must always apply offset +128 when accessing the entries of 
the Timbre Memory bank.
+// This also means that e.g. getClampedLen doesn't work as expected, so better 
to clean up this mess.
 class TimbresMemoryRegion : public MemoryRegion {
 public:
        TimbresMemoryRegion(Bit8u *useRealMemory, Bit8u *useMaxTable) : 
MemoryRegion(useRealMemory, useMaxTable, MR_Timbres, MT32EMU_MEMADDR(0x080000), 
sizeof(MemParams::PaddedTimbre), 64 + 64 + 64 + 64) {}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/munt-libmt32emu_2_8_0/mt32emu/src/Synth.cpp 
new/munt-libmt32emu_2_8_1/mt32emu/src/Synth.cpp
--- old/munt-libmt32emu_2_8_0/mt32emu/src/Synth.cpp     2026-05-16 
18:54:32.000000000 +0200
+++ new/munt-libmt32emu_2_8_1/mt32emu/src/Synth.cpp     2026-05-23 
10:27:12.000000000 +0200
@@ -1707,6 +1707,7 @@
        unsigned int m;
 
        if (region->isReadable()) {
+               if (MR_Timbres == region->type) first += 128;
                region->read(first, off, data, len);
        } else {
                // FIXME: We might want to do these properly in future
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/munt-libmt32emu_2_8_0/mt32emu/src/Synth.h 
new/munt-libmt32emu_2_8_1/mt32emu/src/Synth.h
--- old/munt-libmt32emu_2_8_0/mt32emu/src/Synth.h       2026-05-16 
18:54:32.000000000 +0200
+++ new/munt-libmt32emu_2_8_1/mt32emu/src/Synth.h       2026-05-23 
10:27:12.000000000 +0200
@@ -630,6 +630,7 @@
        MT32EMU_EXPORT_V(2.7) bool getSoundName(char *soundName, Bit8u 
timbreGroup, Bit8u timbreNumber) const;
 
        // Stores internal state of emulated synth into an array provided (as 
it would be acquired from hardware).
+       // Note, addr parameter is expressed in the linear space and *not* the 
SysEx address space.
        MT32EMU_EXPORT void readMemory(Bit32u addr, Bit32u len, Bit8u *data);
 
        // Retrieves the current state of the emulated MT-32 display facilities.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/munt-libmt32emu_2_8_0/mt32emu/src/test/SynthTest.cpp 
new/munt-libmt32emu_2_8_1/mt32emu/src/test/SynthTest.cpp
--- old/munt-libmt32emu_2_8_0/mt32emu/src/test/SynthTest.cpp    2026-05-16 
18:54:32.000000000 +0200
+++ new/munt-libmt32emu_2_8_1/mt32emu/src/test/SynthTest.cpp    2026-05-23 
10:27:12.000000000 +0200
@@ -559,6 +559,35 @@
        delete[] sysexBank;
 }
 
+TEST_CASE("Synth should play SysEx with a custom Timbre bank and read it from 
memory") {
+       static const Bit8u timbreSysex[] = {
+               0x08, 0x70, 0x00,
+               'T', 'e', 's', 't', '-', 's', 'i', 'n', 'e', '.', 0x00, 0x00, 
0x01, 0x00,
+               0x18, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x07,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32,
+               0x00, 0x0b, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x64, 0x32, 0x00, 0x0c, 0x00, 0x0c, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x64,
+               0x64, 0x64
+       };
+
+       Synth synth;
+       ROMSet romSet;
+       romSet.initMT32New();
+       openSynth(synth, romSet);
+
+       Bit8u timbreData[sizeof timbreSysex - 3];
+
+       synth.readMemory(0x023800, sizeof timbreData, timbreData);
+       checkSilence(timbreData, sizeof timbreData);
+
+       synth.writeSysex(16, timbreSysex, sizeof timbreSysex);
+       synth.readMemory(0x023800, sizeof timbreData, timbreData);
+       MT32EMU_CHECK_MEMORY_EQUAL(timbreData, timbreSysex + 3, sizeof 
timbreData);
+}
+
 } // namespace Test
 
 } // namespace MT32Emu

Reply via email to