Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package sidplayfp for openSUSE:Factory 
checked in at 2024-01-03 12:27:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/sidplayfp (Old)
 and      /work/SRC/openSUSE:Factory/.sidplayfp.new.28375 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "sidplayfp"

Wed Jan  3 12:27:48 2024 rev:5 rq:1135989 version:2.6.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/sidplayfp/sidplayfp.changes      2023-12-25 
19:06:12.975487846 +0100
+++ /work/SRC/openSUSE:Factory/.sidplayfp.new.28375/sidplayfp.changes   
2024-01-03 12:27:51.473766625 +0100
@@ -1,0 +2,6 @@
+Mon Jan  1 10:05:36 UTC 2024 - Martin Hauke <mar...@gmx.de>
+
+- Update to version 2.6.0
+  * Added filter curve switch plus recommended 6581 filter setting.
+
+-------------------------------------------------------------------

Old:
----
  sidplayfp-2.5.1.tar.gz

New:
----
  sidplayfp-2.6.0.tar.gz

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

Other differences:
------------------
++++++ sidplayfp.spec ++++++
--- /var/tmp/diff_new_pack.Z0I9I7/_old  2024-01-03 12:27:52.505804312 +0100
+++ /var/tmp/diff_new_pack.Z0I9I7/_new  2024-01-03 12:27:52.509804458 +0100
@@ -1,8 +1,8 @@
 #
 # spec file for package sidplayfp
 #
-# Copyright (c) 2023 SUSE LLC
-# Copyright (c) 2023, Martin Hauke <mar...@gmx.de>
+# Copyright (c) 2024 SUSE LLC
+# Copyright (c) 2023-2024, Martin Hauke <mar...@gmx.de>
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,14 +18,14 @@
 
 
 Name:           sidplayfp
-Version:        2.5.1
+Version:        2.6.0
 Release:        0
 Summary:        SID chip music module player
 License:        GPL-2.0-or-later
 Group:          Productivity/Multimedia/Sound/Players
 #Git-Clone:     https://github.com/libsidplayfp/sidplayfp.git
 URL:            https://sourceforge.net/projects/sidplay-residfp/
-Source0:        
https://sourceforge.net/projects/sidplay-residfp/files/sidplayfp/2.5/sidplayfp-%{version}.tar.gz
+Source0:        
https://sourceforge.net/projects/sidplay-residfp/files/sidplayfp/2.6/sidplayfp-%{version}.tar.gz
 BuildRequires:  gcc-c++
 BuildRequires:  pkgconfig
 BuildRequires:  pkgconfig(alsa)

++++++ sidplayfp-2.5.1.tar.gz -> sidplayfp-2.6.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sidplayfp-2.5.1/AUTHORS new/sidplayfp-2.6.0/AUTHORS
--- old/sidplayfp-2.5.1/AUTHORS 2023-12-23 11:12:27.000000000 +0100
+++ new/sidplayfp-2.6.0/AUTHORS 2024-01-01 09:00:21.000000000 +0100
@@ -3,7 +3,7 @@
 
 Copyright (c) 2000 Simon White
 Copyright (c) 2007-2010 Antti Lankila
-Copyright (c) 2010-2023 Leandro Nini
+Copyright (c) 2010-2024 Leandro Nini
 
 This version of the freely available sidplayfp player source code
 contains the following contributed or derived work. In the order they first
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sidplayfp-2.5.1/README new/sidplayfp-2.6.0/README
--- old/sidplayfp-2.5.1/README  2023-12-23 11:12:27.000000000 +0100
+++ new/sidplayfp-2.6.0/README  2024-01-01 09:00:21.000000000 +0100
@@ -8,7 +8,7 @@
 
 Copyright (c) 2000 Simon White
 Copyright (c) 2007-2010 Antti Lankila
-Copyright (c) 2010-2023 Leandro Nini <drfiem...@users.sourceforge.net>
+Copyright (c) 2010-2024 Leandro Nini <drfiem...@users.sourceforge.net>
 
 
 stilview
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sidplayfp-2.5.1/configure 
new/sidplayfp-2.6.0/configure
--- old/sidplayfp-2.5.1/configure       2023-12-23 11:12:30.000000000 +0100
+++ new/sidplayfp-2.6.0/configure       2024-01-01 09:00:23.000000000 +0100
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for sidplayfp 2.5.1.
+# Generated by GNU Autoconf 2.71 for sidplayfp 2.6.0.
 #
 #
 # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
@@ -608,8 +608,8 @@
 # Identity of this package.
 PACKAGE_NAME='sidplayfp'
 PACKAGE_TARNAME='sidplayfp'
-PACKAGE_VERSION='2.5.1'
-PACKAGE_STRING='sidplayfp 2.5.1'
+PACKAGE_VERSION='2.6.0'
+PACKAGE_STRING='sidplayfp 2.6.0'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL='https://github.com/libsidplayfp/sidplayfp/'
 
@@ -1364,7 +1364,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures sidplayfp 2.5.1 to adapt to many kinds of systems.
+\`configure' configures sidplayfp 2.6.0 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1435,7 +1435,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of sidplayfp 2.5.1:";;
+     short | recursive ) echo "Configuration of sidplayfp 2.6.0:";;
    esac
   cat <<\_ACEOF
 
@@ -1561,7 +1561,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-sidplayfp configure 2.5.1
+sidplayfp configure 2.6.0
 generated by GNU Autoconf 2.71
 
 Copyright (C) 2021 Free Software Foundation, Inc.
@@ -1837,7 +1837,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by sidplayfp $as_me 2.5.1, which was
+It was created by sidplayfp $as_me 2.6.0, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -3327,7 +3327,7 @@
 
 # Define the identity of the package.
  PACKAGE='sidplayfp'
- VERSION='2.5.1'
+ VERSION='2.6.0'
 
 
 printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -10422,7 +10422,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by sidplayfp $as_me 2.5.1, which was
+This file was extended by sidplayfp $as_me 2.6.0, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -10491,7 +10491,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-sidplayfp config.status 2.5.1
+sidplayfp config.status 2.6.0
 configured by $0, generated by GNU Autoconf 2.71,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sidplayfp-2.5.1/configure.ac 
new/sidplayfp-2.6.0/configure.ac
--- old/sidplayfp-2.5.1/configure.ac    2023-12-23 11:12:27.000000000 +0100
+++ new/sidplayfp-2.6.0/configure.ac    2024-01-01 09:00:21.000000000 +0100
@@ -1,5 +1,5 @@
 dnl Process this file with autoconf to produce a configure script.
-AC_INIT([sidplayfp], [2.5.1], [], [], 
[https://github.com/libsidplayfp/sidplayfp/])
+AC_INIT([sidplayfp], [2.6.0], [], [], 
[https://github.com/libsidplayfp/sidplayfp/])
 AC_CONFIG_SRCDIR([src/main.cpp])
 AC_CONFIG_AUX_DIR([build-aux])
 AC_CONFIG_MACRO_DIR([m4])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sidplayfp-2.5.1/doc/en/sidplayfp.1 
new/sidplayfp-2.6.0/doc/en/sidplayfp.1
--- old/sidplayfp-2.5.1/doc/en/sidplayfp.1      2023-12-23 11:12:34.000000000 
+0100
+++ new/sidplayfp-2.6.0/doc/en/sidplayfp.1      2024-01-01 09:00:27.000000000 
+0100
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "SIDPLAYFP 1"
-.TH SIDPLAYFP 1 "2023-12-23" "perl v5.34.0" "User Programs"
+.TH SIDPLAYFP 1 "2024-01-01" "perl v5.34.0" "User Programs"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -276,6 +276,12 @@
 Simulate c64 power on delay as number of cpu cycles.
 If greater than 8191 the delay will be random.
 This is the default.
+.IP "\fB\-\-fcurve=\fR\fI<num>|auto\fR" 4
+.IX Item "--fcurve=<num>|auto"
+Controls the filter curve in the ReSIDfp mulation.
+Ranges from 0.0 (light) to 1.0 (dark), the default
+value is 0.5.  If set to auto it will choose a
+predefined value for 6581 depending on the tune author.
 .IP "\fB\-\-noaudio\fR" 4
 .IX Item "--noaudio"
 Run without an audio output device.
@@ -385,8 +391,8 @@
 .IX Item "Copyright (C) 2007-2010 Antti Lankila"
 .IP "Copyright (C) 2009\-2015 \s-1VICE\s0 Project" 4
 .IX Item "Copyright (C) 2009-2015 VICE Project"
-.IP "Copyright (C) 2010\-2022 Leandro Nini" 4
-.IX Item "Copyright (C) 2010-2022 Leandro Nini"
+.IP "Copyright (C) 2010\-2024 Leandro Nini" 4
+.IX Item "Copyright (C) 2010-2024 Leandro Nini"
 .PD
 .PP
 This program is free software; you can redistribute it and/or modify
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sidplayfp-2.5.1/doc/en/sidplayfp.ini.5 
new/sidplayfp-2.6.0/doc/en/sidplayfp.ini.5
--- old/sidplayfp-2.5.1/doc/en/sidplayfp.ini.5  2023-12-23 11:12:34.000000000 
+0100
+++ new/sidplayfp-2.6.0/doc/en/sidplayfp.ini.5  2024-01-01 09:00:27.000000000 
+0100
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "SIDPLAYFP.INI 5"
-.TH SIDPLAYFP.INI 5 "2023-12-23" "perl v5.34.0" "File formats"
+.TH SIDPLAYFP.INI 5 "2024-01-01" "perl v5.34.0" "File formats"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -366,8 +366,8 @@
 .IX Item "Copyright (C) 2007-2010 Antti Lankila"
 .IP "Copyright (C) 2009\-2015 \s-1VICE\s0 Project" 4
 .IX Item "Copyright (C) 2009-2015 VICE Project"
-.IP "Copyright (C) 2010\-2023 Leandro Nini" 4
-.IX Item "Copyright (C) 2010-2023 Leandro Nini"
+.IP "Copyright (C) 2010\-2024 Leandro Nini" 4
+.IX Item "Copyright (C) 2010-2024 Leandro Nini"
 .PD
 .PP
 This program is free software; you can redistribute it and/or modify
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sidplayfp-2.5.1/doc/en/sidplayfp.ini.pod 
new/sidplayfp-2.6.0/doc/en/sidplayfp.ini.pod
--- old/sidplayfp-2.5.1/doc/en/sidplayfp.ini.pod        2023-12-23 
11:12:27.000000000 +0100
+++ new/sidplayfp-2.6.0/doc/en/sidplayfp.ini.pod        2024-01-01 
09:00:21.000000000 +0100
@@ -306,7 +306,7 @@
 
 =item Copyright (C) 2009-2015 VICE Project
 
-=item Copyright (C) 2010-2023 Leandro Nini
+=item Copyright (C) 2010-2024 Leandro Nini
 
 =back
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sidplayfp-2.5.1/doc/en/sidplayfp.pod 
new/sidplayfp-2.6.0/doc/en/sidplayfp.pod
--- old/sidplayfp-2.5.1/doc/en/sidplayfp.pod    2023-12-23 11:12:27.000000000 
+0100
+++ new/sidplayfp-2.6.0/doc/en/sidplayfp.pod    2024-01-01 09:00:21.000000000 
+0100
@@ -175,6 +175,13 @@
 If greater than 8191 the delay will be random.
 This is the default.
 
+=item B<--fcurve=>I<< <num>|auto >>
+
+Controls the filter curve in the ReSIDfp mulation.
+Ranges from 0.0 (light) to 1.0 (dark), the default
+value is 0.5.  If set to auto it will choose a
+predefined value for 6581 depending on the tune author.
+
 =item B<--noaudio>
 
 Run without an audio output device.
@@ -339,7 +346,7 @@
 
 =item Copyright (C) 2009-2015 VICE Project
 
-=item Copyright (C) 2010-2022 Leandro Nini
+=item Copyright (C) 2010-2024 Leandro Nini
 
 =back
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sidplayfp-2.5.1/doc/en/stilview.1 
new/sidplayfp-2.6.0/doc/en/stilview.1
--- old/sidplayfp-2.5.1/doc/en/stilview.1       2023-12-23 11:12:34.000000000 
+0100
+++ new/sidplayfp-2.6.0/doc/en/stilview.1       2024-01-01 09:00:27.000000000 
+0100
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "STILVIEW 1"
-.TH STILVIEW 1 "2023-12-23" "perl v5.34.0" "User Programs"
+.TH STILVIEW 1 "2024-01-01" "perl v5.34.0" "User Programs"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sidplayfp-2.5.1/src/args.cpp 
new/sidplayfp-2.6.0/src/args.cpp
--- old/sidplayfp-2.5.1/src/args.cpp    2023-12-23 11:12:27.000000000 +0100
+++ new/sidplayfp-2.6.0/src/args.cpp    2024-01-01 09:00:21.000000000 +0100
@@ -1,7 +1,7 @@
 /*
  * This file is part of sidplayfp, a console SID player.
  *
- * Copyright 2011-2021 Leandro Nini
+ * Copyright 2011-2023 Leandro Nini
  * Copyright 2000-2001 Simon White
  *
  * This program is free software; you can redistribute it and/or modify
@@ -379,6 +379,17 @@
             {
                 m_engCfg.powerOnDelay = (uint_least16_t) atoi(&argv[i][8]);
             }
+            else if (strncmp (&argv[i][1], "-fcurve=", 8) == 0)
+            {
+                if (strncmp (&argv[i][9], "auto", 4) == 0)
+                {
+                    m_autofilter = true;
+                }
+                else
+                {
+                    m_fcurve = atof(&argv[i][9]);
+                }
+            }
             // File format conversions
             else if (argv[i][1] == 'w')
             {
@@ -648,6 +659,7 @@
 #endif
         << " -r[i|r][f]   set resampling method (default: resample 
interpolate)" << endl
         << "              Use 'f' to enable fast resampling (only for reSID)" 
<< endl
+        << " --fcurve=<num>|auto Controls the filter curve in the ReSIDfp 
emulation" << endl
 
         << " -w[name]     create wav file (default: <datafile>[n].wav)" << endl
         << " --au[name]   create au file (default: <datafile>[n].au)" << endl
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sidplayfp-2.5.1/src/menu.cpp 
new/sidplayfp-2.6.0/src/menu.cpp
--- old/sidplayfp-2.5.1/src/menu.cpp    2023-12-23 11:12:27.000000000 +0100
+++ new/sidplayfp-2.6.0/src/menu.cpp    2024-01-01 09:00:21.000000000 +0100
@@ -161,12 +161,8 @@
 
     consoleTable (tableStart);
     consoleTable (tableMiddle);
-    consoleColour (red, true);
-    cerr << "  SID";
-    consoleColour (blue, true);
-    cerr << "PLAYFP";
     consoleColour (white, true);
-    cerr << " - Music Player and C64 SID Chip Emulator" << endl;
+    cerr << "  SIDPLAYFP - Music Player and C64 SID Chip Emulator" << endl;
     consoleTable  (tableMiddle);
     consoleColour (white, false);
     {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sidplayfp-2.5.1/src/player.cpp 
new/sidplayfp-2.6.0/src/player.cpp
--- old/sidplayfp-2.5.1/src/player.cpp  2023-12-23 11:12:27.000000000 +0100
+++ new/sidplayfp-2.6.0/src/player.cpp  2024-01-01 09:00:21.000000000 +0100
@@ -1,7 +1,7 @@
 /*
  * This file is part of sidplayfp, a console SID player.
  *
- * Copyright 2011-2022 Leandro Nini
+ * Copyright 2011-2023 Leandro Nini
  * Copyright 2000-2001 Simon White
  *
  * This program is free software; you can redistribute it and/or modify
@@ -52,6 +52,16 @@
 #include <sidplayfp/SidInfo.h>
 #include <sidplayfp/SidTuneInfo.h>
 
+#ifdef HAVE_CXX11
+#  include <unordered_map>
+    typedef std::unordered_map<std::string, double> filter_map_t;
+    typedef std::unordered_map<std::string, double>::const_iterator 
filter_map_iter_t;
+#else
+#  include <map>
+    typedef std::map<std::string, double> filter_map_t;
+    typedef std::map<std::string, double>::const_iterator filter_map_iter_t;
+#endif
+
 // Previous song select timeout (4 secs)
 #define SID2_PREV_SONG_TIMEOUT 4000
 
@@ -103,6 +113,70 @@
 };
 #endif
 
+// This table contains chip-profiles which allow us to adjust
+// certain settings that varied wildly between 6581 chips, even
+// made in the same factory on the same day.
+//
+// This works under the assumption that the authors used the
+// same SID chip their entire career.
+//
+// based on 
https://github.com/reFX/libSidplayEZ/blob/modernized/src/chip-profiles.h
+static const filter_map_t filterCurveMap =
+{
+    { "Anthony Lees",                        0.450 },
+    { "Antony Crowther (Ratt)",              0.400 },
+    { "Ben Daglish",                         0.900 },
+    { "Charles Deenen",                      1.000 },
+    { "Chris H\xFClsbeck",                   0.600 },
+    { "David Dunn",                          1.100 },
+    { "David Dunn & Aidan Bell",             1.100 },
+    { "David Whittaker",                     1.000 },
+    { "Thomas Mogensen (DRAX)",              0.450 },
+    { "Edwin van Santen",                    0.650 },
+    { "Falco Paul",                          1.100 },
+    { "Figge Wasberger (Fegolhuzz)",         1.100 },
+    { "Fred Gray",                           1.250 },
+    { "Geir Tjelta",                         0.700 },
+    { "Georg Feil",                          1.250 },
+    { "Glenn Rune Gallefoss",                1.250 },
+    { "Graham Jarvis & Rob Hartshorne",      1.000 },
+    { "Jason Page",                          1.000 },
+    { "Jeroen Tel",                          0.825 },
+    { "Johannes Bjerregaard",                0.700 },
+    { "Jonathan Dunn",                       0.750 },
+    { "Jouni Ikonen (Mixer)",                0.600 },
+    { "Kim Christensen (Future Freak)",      0.300 },
+    { "Linus \xC5kesson (lft)",              0.900 },
+    { "Mark Cooksey",                        1.250 },
+    { "Markus M\xFCller (Superbrain)",       0.800 },
+    { "Martin Walker",                       1.000 },
+    { "Matt Gray",                           1.100 },
+    { "Michael Hendriks",                    0.900 },
+    { "M. Nilsson-Vonderburgh (Mic)",        0.700 },
+    { "M. Nilsson-Vonderburgh (Mitch)",      0.700 },
+    { "M. Nilsson-Vonderburgh (Yankee)",     0.700 },
+    { "Neil Brennan",                        0.750 },
+    { "Peter Clarke",                        0.600 },
+    { "Pex Tufvesson (Mahoney)",             0.400 },
+    { "Pex Tufvesson (Zax)",                 0.400 },
+    { "Renato Brosowski (Zoci-Joe)",         1.400 },
+    { "Reyn Ouwehand",                       1.000 },
+    { "Richard Joseph",                      0.700 },
+    { "Rob Hubbard",                         0.700 },
+    { "Russell Lieblich",                    0.400 },
+    { "Stellan Andersson (Dane)",            0.350 },
+    { "Steve Turner",                        0.550 },
+    { "Tim Follin",                          0.300 },
+    { "Thomas E. Petersen (Laxity)",         1.550 },
+    { "Thomas E. Petersen (TSS)",            1.550 },
+};
+
+double getRecommendedFilterCurve(const std::string& author)
+{
+    filter_map_iter_t it = filterCurveMap.find(author);
+    return (it != filterCurveMap.end()) ? it->second : 0.5;
+}
+
 uint8_t* loadRom(const SID_STRING &romPath, const int size)
 {
     SID_IFSTREAM is(romPath.c_str(), std::ios::binary);
@@ -178,9 +252,11 @@
     m_state(playerStopped),
     m_outfile(NULL),
     m_filename(""),
+    m_fcurve(-1.0),
     m_quietLevel(0),
     m_cpudebug(false),
-    newSonglengthDB(false)
+    newSonglengthDB(false),
+    m_autofilter(false)
 {
 #ifdef FEAT_REGS_DUMP_SID
     memset(m_registers, 0, 32*3);
@@ -263,7 +339,7 @@
     m_verboseLevel = (m_iniCfg.sidplay2()).verboseLevel;
 
     createOutput (OUT_NULL, nullptr);
-    createSidEmu (EMU_NONE);
+    createSidEmu (EMU_NONE, nullptr);
 
     uint8_t *kernalRom = loadRom((m_iniCfg.sidplay2()).kernalRom, 8192, 
TEXT("kernal"));
     uint8_t *basicRom = loadRom((m_iniCfg.sidplay2()).basicRom, 8192, 
TEXT("basic"));
@@ -422,7 +498,7 @@
 
 
 // Create the sid emulation
-bool ConsolePlayer::createSidEmu (SIDEMUS emu)
+bool ConsolePlayer::createSidEmu (SIDEMUS emu, const SidTuneInfo *tuneInfo)
 {
     // Remove old driver and emulation
     if (m_engCfg.sidEmulation)
@@ -448,10 +524,45 @@
             rs->create ((m_engine.info ()).maxsids());
             if (!rs->getStatus()) goto createSidEmu_error;
 
-            if (m_filter.filterCurve6581)
-                rs->filter6581Curve(m_filter.filterCurve6581);
-            if (m_filter.filterCurve8580)
-                rs->filter8580Curve((double)m_filter.filterCurve8580);
+            double fcurve;
+            if (m_autofilter && (tuneInfo->numberOfInfoStrings() == 3))
+            {
+                fcurve = getRecommendedFilterCurve(tuneInfo->infoString(1));
+                if (m_verboseLevel > 1)
+                    cerr << "Recommended filter curve: " << fcurve << endl;
+            }
+            else if (m_fcurve >= 0.0)
+            {
+                fcurve = m_fcurve;
+            }
+            else if (m_filter.filterCurve6581 >= 0.0)
+            {
+                fcurve = m_filter.filterCurve6581;
+            }
+
+            if (fcurve >= 0.0)
+            {
+                if (m_verboseLevel)
+                    cerr << "6581 filter curve: " << fcurve << endl;
+                rs->filter6581Curve(fcurve);
+            }
+
+            fcurve = -1.0;
+            if (m_fcurve >= 0.0)
+            {
+                fcurve = m_fcurve;
+            }
+            if (m_filter.filterCurve8580 >= 0.0)
+            {
+                fcurve = m_filter.filterCurve8580;
+            }
+
+            if (fcurve >= 0.0)
+            {
+                if (m_verboseLevel)
+                    cerr << "8580 filter curve: " << fcurve << endl;
+                rs->filter8580Curve(fcurve);
+            }
         }
         catch (std::bad_alloc const &ba) {}
         break;
@@ -567,7 +678,7 @@
         m_track.songs = tuneInfo->songs();
     if (!createOutput(m_driver.output, tuneInfo))
         return false;
-    if (!createSidEmu(m_driver.sid))
+    if (!createSidEmu(m_driver.sid, tuneInfo))
         return false;
 
     // Configure engine with settings
@@ -649,7 +760,7 @@
 
     // Shutdown drivers, etc
     createOutput    (OUT_NULL, nullptr);
-    createSidEmu    (EMU_NONE);
+    createSidEmu    (EMU_NONE, nullptr);
     m_engine.load   (nullptr);
     m_engine.config (m_engCfg);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sidplayfp-2.5.1/src/player.h 
new/sidplayfp-2.6.0/src/player.h
--- old/sidplayfp-2.5.1/src/player.h    2023-12-23 11:12:27.000000000 +0100
+++ new/sidplayfp-2.6.0/src/player.h    2024-01-01 09:00:21.000000000 +0100
@@ -1,7 +1,7 @@
 /*
  * This file is part of sidplayfp, a console SID player.
  *
- * Copyright 2011-2022 Leandro Nini
+ * Copyright 2011-2023 Leandro Nini
  * Copyright 2000-2001 Simon White
  *
  * This program is free software; you can redistribute it and/or modify
@@ -126,6 +126,8 @@
     IniConfig          m_iniCfg;
     SidDatabase        m_database;
 
+    double             m_fcurve;
+
     uint8_t            m_registers[3][32];
     uint16_t*          m_freqTable;
 
@@ -137,6 +139,8 @@
 
     bool               newSonglengthDB;
 
+    bool               m_autofilter;
+
     bool vMute[9];
 
     int  m_channels;
@@ -200,7 +204,7 @@
     void displayArgs    (const char *arg = NULL);
 
     bool createOutput   (OUTPUTS driver, const SidTuneInfo *tuneInfo);
-    bool createSidEmu   (SIDEMUS emu);
+    bool createSidEmu   (SIDEMUS emu, const SidTuneInfo *tuneInfo);
     void displayError   (const char *error);
     void displayError   (unsigned int num) { ::displayError (m_name, num); }
     void decodeKeys     (void);

Reply via email to