Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package mt32emu for openSUSE:Factory checked 
in at 2021-08-18 08:56:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mt32emu (Old)
 and      /work/SRC/openSUSE:Factory/.mt32emu.new.1899 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "mt32emu"

Wed Aug 18 08:56:10 2021 rev:7 rq:912583 version:2.5.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/mt32emu/mt32emu.changes  2021-07-21 
19:07:44.315433141 +0200
+++ /work/SRC/openSUSE:Factory/.mt32emu.new.1899/mt32emu.changes        
2021-08-18 08:57:02.106895665 +0200
@@ -1,0 +2,13 @@
+Tue Aug 17 08:25:09 UTC 2021 - ???????? ???????????? <[email protected]>
+
+- Updated to 2.5.2.
+  * Fixed possible access to uninitialised rhythm timbre memory when
+    using MT-32 control ROM. With control ROMs 2.04 and above,
+    the entire rhythm timbre memory is now initialised as the real
+    devices do. Those timbres that do not exist in MT-32 models are
+    now muted. With control ROMs 1.xx, the timbres 30..59 are mapped
+    to 0..29 that should correspond to the behaviour of real units.
+    The other 4 timbres are muted to avoid undefined behaviour the
+    real hardware exhibits.
+
+-------------------------------------------------------------------

Old:
----
  munt-libmt32emu_2_5_2.tar.gz

New:
----
  munt-libmt32emu_2_5_3.tar.gz

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

Other differences:
------------------
++++++ mt32emu.spec ++++++
--- /var/tmp/diff_new_pack.J4ohkk/_old  2021-08-18 08:57:02.718894945 +0200
+++ /var/tmp/diff_new_pack.J4ohkk/_new  2021-08-18 08:57:02.722894941 +0200
@@ -17,10 +17,10 @@
 
 
 %define s_name  munt-lib%{name}_%{s_ver}
-%define s_ver   2_5_2
+%define s_ver   2_5_3
 %define sover   2
 Name:           mt32emu
-Version:        2.5.2
+Version:        2.5.3
 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_5_2.tar.gz -> munt-libmt32emu_2_5_3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/munt-libmt32emu_2_5_2/mt32emu/CMakeLists.txt 
new/munt-libmt32emu_2_5_3/mt32emu/CMakeLists.txt
--- old/munt-libmt32emu_2_5_2/mt32emu/CMakeLists.txt    2021-07-18 
09:16:09.000000000 +0200
+++ new/munt-libmt32emu_2_5_3/mt32emu/CMakeLists.txt    2021-08-06 
23:12:57.000000000 +0200
@@ -7,7 +7,7 @@
 set(libmt32emu_URL "http://munt.sourceforge.net/";)
 set(libmt32emu_VERSION_MAJOR 2)
 set(libmt32emu_VERSION_MINOR 5)
-set(libmt32emu_VERSION_PATCH 2)
+set(libmt32emu_VERSION_PATCH 3)
 set(libmt32emu_VERSION 
"${libmt32emu_VERSION_MAJOR}.${libmt32emu_VERSION_MINOR}.${libmt32emu_VERSION_PATCH}")
 
 if(${munt_WITH_MT32EMU_SMF2WAV} OR ${munt_WITH_MT32EMU_QT})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/munt-libmt32emu_2_5_2/mt32emu/NEWS.txt 
new/munt-libmt32emu_2_5_3/mt32emu/NEWS.txt
--- old/munt-libmt32emu_2_5_2/mt32emu/NEWS.txt  2021-07-18 09:16:09.000000000 
+0200
+++ new/munt-libmt32emu_2_5_3/mt32emu/NEWS.txt  2021-08-06 23:12:57.000000000 
+0200
@@ -1,3 +1,14 @@
+2021-08-07:
+
+       2.5.3 released.
+
+       * Fixed possible access to uninitialised rhythm timbre memory when 
using MT-32 control ROM.
+         With control ROMs 2.04 and above, the entire rhythm timbre memory is 
now initialised
+         as the real devices do. Those timbres that do not exist in MT-32 
models are now muted.
+         With control ROMs 1.xx, the timbres 30..59 are mapped to 0..29 that 
should correspond
+         to the behaviour of real units. The other 4 timbres are muted to 
avoid undefined behaviour
+         the real hardware exhibits. (#72)
+
 2021-07-18:
 
        2.5.2 released.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/munt-libmt32emu_2_5_2/mt32emu/src/Synth.cpp 
new/munt-libmt32emu_2_5_3/mt32emu/src/Synth.cpp
--- old/munt-libmt32emu_2_5_2/mt32emu/src/Synth.cpp     2021-07-18 
09:16:09.000000000 +0200
+++ new/munt-libmt32emu_2_5_3/mt32emu/src/Synth.cpp     2021-08-06 
23:12:57.000000000 +0200
@@ -72,7 +72,7 @@
        { "ctrl_mt32_1_06", OLD_MT32_COMPATIBLE, 0x3000, 128, 0x8000, 0x0000, 
false, 0xC000, 0x4000, false, 0x3200, 30, 0x7414, 85, 0x57D9, 0x57F4, 0x57E2, 
0x5264, 0x5270, 0x5280, 0x521C, 0x70CA, 19 },
        { "ctrl_mt32_1_07", OLD_MT32_COMPATIBLE, 0x3000, 128, 0x8000, 0x0000, 
false, 0xC000, 0x4000, false, 0x3200, 30, 0x73fe, 85, 0x57B1, 0x57CC, 0x57BA, 
0x523C, 0x5248, 0x5258, 0x51F4, 0x70B0, 19 }, // MT-32 revision 1
        {"ctrl_mt32_bluer", OLD_MT32_COMPATIBLE, 0x3000, 128, 0x8000, 0x0000, 
false, 0xC000, 0x4000, false, 0x3200, 30, 0x741C, 85, 0x57E5, 0x5800, 0x57EE, 
0x5270, 0x527C, 0x528C, 0x5228, 0x70CE, 19 }, // MT-32 Blue Ridge mod
-       {"ctrl_mt32_2_04",   CM32L_COMPATIBLE,   0x8100, 128, 0x8000, 0x8000, 
true,  0x8080, 0x8000, true,  0x8500, 30, 0x8580, 85, 0x4F5D, 0x4F78, 0x4F66, 
0x4899, 0x489D, 0x48B6, 0x48CD, 0x5A58, 19 },
+       {"ctrl_mt32_2_04",   CM32L_COMPATIBLE,   0x8100, 128, 0x8000, 0x8000, 
true,  0x8080, 0x8000, true,  0x8500, 64, 0x8580, 85, 0x4F5D, 0x4F78, 0x4F66, 
0x4899, 0x489D, 0x48B6, 0x48CD, 0x5A58, 19 },
        {"ctrl_cm32l_1_00",  CM32L_COMPATIBLE,   0x8100, 256, 0x8000, 0x8000, 
true,  0x8080, 0x8000, true,  0x8500, 64, 0x8580, 85, 0x4F65, 0x4F80, 0x4F6E, 
0x48A1, 0x48A5, 0x48BE, 0x48D5, 0x5A6C, 19 },
        {"ctrl_cm32l_1_02",  CM32L_COMPATIBLE,   0x8100, 256, 0x8000, 0x8000, 
true,  0x8080, 0x8000, true,  0x8500, 64, 0x8580, 85, 0x4F93, 0x4FAE, 0x4F9C, 
0x48CB, 0x48CF, 0x48E8, 0x48FF, 0x5A96, 19 }  // CM-32L
        // (Note that old MT-32 ROMs actually have 86 entries for rhythmTemp)
@@ -717,6 +717,16 @@
                return false;
        }
 
+       if (controlROMMap->timbreRCount == 30) {
+               // We must initialise all 64 rhythm timbres to avoid undefined 
behaviour.
+               // SEMI-CONFIRMED: Old-gen MT-32 units likely map timbres 
30..59 to 0..29.
+               // Attempts to play rhythm timbres 60..63 exhibit undefined 
behaviour.
+               // We want to emulate the wrap around, so merely copy the 
entire set of standard
+               // timbres once more. The last 4 dangerous timbres are zeroed 
out.
+               memcpy(&mt32ram.timbres[222], &mt32ram.timbres[192], 
sizeof(*mt32ram.timbres) * 30);
+               memset(&mt32ram.timbres[252], 0, sizeof(*mt32ram.timbres) * 4);
+       }
+
 #if MT32EMU_MONITOR_INIT
        printDebug("Initialising Timbre Bank M");
 #endif

Reply via email to