openSUSE Commits
Threads by month
- ----- 2025 -----
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
January 2024
- 1 participants
- 1743 discussions
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-pymdown-extensions for openSUSE:Factory checked in at 2024-01-03 12:27:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pymdown-extensions (Old)
and /work/SRC/openSUSE:Factory/.python-pymdown-extensions.new.28375 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pymdown-extensions"
Wed Jan 3 12:27:09 2024 rev:5 rq:1135879 version:10.7
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pymdown-extensions/python-pymdown-extensions.changes 2023-12-14 22:03:53.533694036 +0100
+++ /work/SRC/openSUSE:Factory/.python-pymdown-extensions.new.28375/python-pymdown-extensions.changes 2024-01-03 12:27:11.400303237 +0100
@@ -1,0 +2,20 @@
+Sun Dec 31 13:42:23 UTC 2023 - Dirk Müller <dmueller(a)suse.com>
+
+- update to 10.7:
+ * NEW: Emoji: Update Twemoji and Gemoji data to latest.
+ * NEW: Emoji: Due to recent Gemoji update, non-standard emoji
+ are no longer indexed. So emoji such as :octocat: are no
+ longer resolved.
+ * NEW: Highlight: Added new option default_lang which will
+ cause code blocks with no language specifier to be
+ highlighted with the specified default language instead of
+ plain text. This affects indented code blocks and code blocks
+ defined with SuperFences.
+ * NEW: InlineHilite: style_plain_text can be specified with a
+ language string (in addition to its previous boolean
+ requirement) to treat inline code blocks with no explicit
+ language specifier with a specific default language.
+ * NEW: MagicLink: Allow configuring custom
+ repository providers based off the existing providers.
+
+-------------------------------------------------------------------
Old:
----
pymdown-extensions-10.5.tar.gz
New:
----
pymdown-extensions-10.7.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pymdown-extensions.spec ++++++
--- /var/tmp/diff_new_pack.RvWoU9/_old 2024-01-03 12:27:12.756352757 +0100
+++ /var/tmp/diff_new_pack.RvWoU9/_new 2024-01-03 12:27:12.756352757 +0100
@@ -17,7 +17,7 @@
Name: python-pymdown-extensions
-Version: 10.5
+Version: 10.7
Release: 0
Summary: Extension pack for Python Markdown
License: MIT
++++++ pymdown-extensions-10.5.tar.gz -> pymdown-extensions-10.7.tar.gz ++++++
++++ 26335 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-mplcursors for openSUSE:Factory checked in at 2024-01-03 12:27:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-mplcursors (Old)
and /work/SRC/openSUSE:Factory/.python-mplcursors.new.28375 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-mplcursors"
Wed Jan 3 12:27:06 2024 rev:8 rq:1135865 version:0.5.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-mplcursors/python-mplcursors.changes 2023-01-10 15:00:34.401465348 +0100
+++ /work/SRC/openSUSE:Factory/.python-mplcursors.new.28375/python-mplcursors.changes 2024-01-03 12:27:07.688167679 +0100
@@ -1,0 +2,6 @@
+Fri Dec 29 21:21:45 UTC 2023 - Ben Greiner <code(a)bnavigator.de>
+
+- Add mplcursors-fix-stem-api.patch, fixing API change in
+ Matplotlib 3.8
+
+-------------------------------------------------------------------
New:
----
mplcursors-fix-stem-api.patch
BETA DEBUG BEGIN:
New:
- Add mplcursors-fix-stem-api.patch, fixing API change in
Matplotlib 3.8
BETA DEBUG END:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-mplcursors.spec ++++++
--- /var/tmp/diff_new_pack.BmBZTP/_old 2024-01-03 12:27:08.484196748 +0100
+++ /var/tmp/diff_new_pack.BmBZTP/_new 2024-01-03 12:27:08.484196748 +0100
@@ -16,7 +16,6 @@
#
-%define skip_python2 1
Name: python-mplcursors
Version: 0.5.2
Release: 0
@@ -24,6 +23,8 @@
License: MIT
URL: https://github.com/anntzer/mplcursors
Source: https://files.pythonhosted.org/packages/source/m/mplcursors/mplcursors-%{ve…
+# PATCH-FIX-UPSTREAM mplcursors-fix-stem-api.patch main branch -- fix Matplotlib 3.8 API change
+Patch0: https://github.com/anntzer/mplcursors/commit/689b4adefaf0302a9338bb28bd3c3f…
BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools_scm}
BuildRequires: %{python_module setuptools}
++++++ mplcursors-fix-stem-api.patch ++++++
From 689b4adefaf0302a9338bb28bd3c3f0ef1c95ce7 Mon Sep 17 00:00:00 2001
From: Antony Lee <anntzer.lee(a)gmail.com>
Date: Thu, 6 Apr 2023 19:56:52 +0200
Subject: [PATCH] Fix tests re: stem API changes.
---
tests/test_mplcursors.py | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/tests/test_mplcursors.py b/tests/test_mplcursors.py
index 7ac6659..56fe85d 100644
--- a/tests/test_mplcursors.py
+++ b/tests/test_mplcursors.py
@@ -387,8 +387,11 @@ def test_dataless_errorbar(ax):
def test_stem(ax):
- with pytest.warns(None): # stem use_line_collection API change.
- ax.stem([1, 2, 3], use_line_collection=True)
+ try: # stem use_line_collection API change.
+ with pytest.warns(None):
+ ax.stem([1, 2, 3], use_line_collection=True)
+ except TypeError:
+ ax.stem([1, 2, 3])
cursor = mplcursors.cursor()
assert len(cursor.artists) == 1
_process_event("__mouse_click__", ax, (.5, .5), 1)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-nh3 for openSUSE:Factory checked in at 2024-01-03 12:27:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-nh3 (Old)
and /work/SRC/openSUSE:Factory/.python-nh3.new.28375 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-nh3"
Wed Jan 3 12:27:04 2024 rev:3 rq:1135872 version:0.2.15
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-nh3/python-nh3.changes 2023-12-28 22:54:17.266710099 +0100
+++ /work/SRC/openSUSE:Factory/.python-nh3.new.28375/python-nh3.changes 2024-01-03 12:27:06.132110855 +0100
@@ -1,0 +2,5 @@
+Fri Dec 29 11:27:50 UTC 2023 - ecsos <ecsos(a)opensuse.org>
+
+- Add %{?sle15_python_module_pythons}
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-nh3.spec ++++++
--- /var/tmp/diff_new_pack.3PRgWf/_old 2024-01-03 12:27:06.768134082 +0100
+++ /var/tmp/diff_new_pack.3PRgWf/_new 2024-01-03 12:27:06.768134082 +0100
@@ -16,6 +16,7 @@
#
+%{?sle15_python_module_pythons}
Name: python-nh3
Version: 0.2.15
Release: 0
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-bson for openSUSE:Factory checked in at 2024-01-03 12:27:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-bson (Old)
and /work/SRC/openSUSE:Factory/.python-bson.new.28375 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-bson"
Wed Jan 3 12:27:03 2024 rev:6 rq:1135868 version:0.5.10
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-bson/python-bson.changes 2023-12-19 23:16:11.330312168 +0100
+++ /work/SRC/openSUSE:Factory/.python-bson.new.28375/python-bson.changes 2024-01-03 12:27:04.916066449 +0100
@@ -1,0 +2,5 @@
+Fri Dec 29 13:44:20 UTC 2023 - Antonio Larrosa <alarrosa(a)suse.com>
+
+- Use %{?sle15_python_module_pythons}
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-bson.spec ++++++
--- /var/tmp/diff_new_pack.s6TRoX/_old 2024-01-03 12:27:05.512088214 +0100
+++ /var/tmp/diff_new_pack.s6TRoX/_new 2024-01-03 12:27:05.516088360 +0100
@@ -16,6 +16,7 @@
#
+%{?sle15_python_module_pythons}
Name: python-bson
Version: 0.5.10
Release: 0
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package mpc-qt for openSUSE:Factory checked in at 2024-01-03 12:26:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mpc-qt (Old)
and /work/SRC/openSUSE:Factory/.mpc-qt.new.28375 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mpc-qt"
Wed Jan 3 12:26:54 2024 rev:16 rq:1135857 version:23.12
Changes:
--------
--- /work/SRC/openSUSE:Factory/mpc-qt/mpc-qt.changes 2023-02-10 14:35:56.198141489 +0100
+++ /work/SRC/openSUSE:Factory/.mpc-qt.new.28375/mpc-qt.changes 2024-01-03 12:26:57.387791534 +0100
@@ -1,0 +2,16 @@
+Sun Dec 31 09:44:01 UTC 2023 - Luigi Baldoni <aloisio(a)gmx.com>
+
+- Update to version 23.12
+ * Port to Qt 6.
+ * Fixed some more fractional scaling bugs.
+ * Tidied up the unimplemented options in the settings dialog.
+ * Implement fullscreen switcher combobox.
+ * Implement systray icon.
+ * Fix default tracks logic.
+ * Fix wayland icon.
+ * Add option to use Wayland.
+ * Mute button state is preserved across restarts.
+- Use g++10 on Leap
+- Enable PIE
+
+-------------------------------------------------------------------
Old:
----
mpc-qt-23.02.tar.gz
New:
----
mpc-qt-23.12.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mpc-qt.spec ++++++
--- /var/tmp/diff_new_pack.Go0OJd/_old 2024-01-03 12:26:58.027814906 +0100
+++ /var/tmp/diff_new_pack.Go0OJd/_new 2024-01-03 12:26:58.027814906 +0100
@@ -17,7 +17,7 @@
Name: mpc-qt
-Version: 23.02
+Version: 23.12
Release: 0
Summary: Media Player Classic Qute Theater
License: GPL-2.0-only
@@ -25,18 +25,18 @@
Source0: https://github.com/mpc-qt/mpc-qt/archive/refs/tags/v%{version}.tar.gz#/%{na…
Source1: %{name}.changes
BuildRequires: libQt5Gui-private-headers-devel
-BuildRequires: libqt5-linguist
-BuildRequires: pkgconfig(Qt5Core)
-BuildRequires: pkgconfig(Qt5DBus)
-BuildRequires: pkgconfig(Qt5Gui)
-BuildRequires: pkgconfig(Qt5Network)
-BuildRequires: pkgconfig(Qt5Widgets) >= 5.4
-BuildRequires: pkgconfig(Qt5X11Extras)
+BuildRequires: qt6-tools-linguist
+BuildRequires: pkgconfig(Qt6Core)
+BuildRequires: pkgconfig(Qt6DBus)
+BuildRequires: pkgconfig(Qt6Gui)
+BuildRequires: pkgconfig(Qt6Network)
+BuildRequires: pkgconfig(Qt6OpenGLWidgets)
+BuildRequires: pkgconfig(Qt6Widgets)
BuildRequires: pkgconfig(mpv) >= 1.101.0
%if 0%{?suse_version} > 1500
BuildRequires: gcc-c++
%else
-BuildRequires: gcc7-c++
+BuildRequires: gcc10-c++
%endif
%description
@@ -48,10 +48,11 @@
%build
export CXX=g++
-test -x "$(type -p g++-7)" && export CXX=g++-7
-qmake-qt5 \
- QMAKE_CFLAGS+="%{optflags}" QMAKE_CXXFLAGS+="%{optflags}" \
- QMAKE_CC="${CC}" QMAKE_CXX="${CXX}" PREFIX=%{_prefix} \
+test -x "$(type -p g++-10)" && export CXX=g++-10
+qmake6 \
+ QMAKE_CFLAGS+="%{optflags} -fpie" QMAKE_CXXFLAGS+="%{optflags} -fpie" \
+ QMAKE_LFLAGS="%{optflags} -pie" QMAKE_CC="${CC}" QMAKE_CXX="${CXX}" \
+ PREFIX=%{_prefix} MPCQT_VERSION=%{version} \
mpc-qt.pro
%make_build
@@ -62,8 +63,8 @@
%{buildroot}/%{_datadir}/%{name}/translations
install -m 0755 %{name} %{buildroot}/%{_bindir}
install -m 0644 images/icon/mpc-qt.svg %{buildroot}/%{_datadir}/pixmaps/%{name}.svg
-install -m 0644 resources/translations/%{name}_*.qm -t %{buildroot}/%{_datadir}/%{name}/translations
-install -m 0644 io.github.mpc_qt.Mpc-Qt.desktop %{buildroot}/%{_datadir}/applications/Media\ Player\ Classic\ Qute\ Theater.desktop
+install -m 0644 %{name}_*.qm -t %{buildroot}/%{_datadir}/%{name}/translations
+install -m 0644 mpc-qt.desktop %{buildroot}/%{_datadir}/applications/Media\ Player\ Classic\ Qute\ Theater.desktop
%files
%doc README.md
++++++ mpc-qt-23.02.tar.gz -> mpc-qt-23.12.tar.gz ++++++
++++ 5688 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package wob for openSUSE:Factory checked in at 2024-01-03 12:26:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/wob (Old)
and /work/SRC/openSUSE:Factory/.wob.new.28375 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "wob"
Wed Jan 3 12:26:51 2024 rev:7 rq:1135850 version:0.15.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/wob/wob.changes 2022-11-29 13:23:36.806062906 +0100
+++ /work/SRC/openSUSE:Factory/.wob.new.28375/wob.changes 2024-01-03 12:26:54.899700675 +0100
@@ -1,0 +2,19 @@
+Sun Sep 17 08:33:37 UTC 2023 - Joshua Smith <jsmithfpv(a)gmail.com>
+
+- Update to 0.15.1:
+ Fixed:
+ * Allow mmap in seccomp sandbox
+- Added systemd services from git contrib
+
+-------------------------------------------------------------------
+Fri Sep 15 20:03:33 UTC 2023 - Joshua Smith <jsmithfpv(a)gmail.com>
+
+- Update to 0.15:
+ Added:
+ * Added bar orientation = horizontal | vertical
+ * Look for config file in /etc/wob/wob.ini
+ * New optional build dependency on cmocka (to run tests)
+ Changed:
+ * Replace inputting colors via stdin with styles
+
+-------------------------------------------------------------------
Old:
----
wob-0.14.2.tar.gz
wob-0.14.2.tar.gz.sig
New:
----
wob-0.15.1.tar.gz
wob-0.15.1.tar.gz.sig
wob.service
wob.socket
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ wob.spec ++++++
--- /var/tmp/diff_new_pack.P58cPR/_old 2024-01-03 12:26:56.439756914 +0100
+++ /var/tmp/diff_new_pack.P58cPR/_new 2024-01-03 12:26:56.439756914 +0100
@@ -1,7 +1,7 @@
#
# spec file for package wob
#
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: wob
-Version: 0.14.2
+Version: 0.15.1
Release: 0
Summary: A lightweight overlay volume/backlight/progress/anything bar for Wayland
License: ISC
@@ -26,10 +26,13 @@
Source0: https://github.com/francma/wob/releases/download/%{version}/wob-%{version}.…
Source1: https://github.com/francma/wob/releases/download/%{version}/wob-%{version}.…
Source2: https://keys.openpgp.org/vks/v1/by-fingerprint/5C6DA024DDE27178073EA103F4B4…
+Source3: wob.service
+Source4: wob.socket
BuildRequires: cmake
BuildRequires: meson
BuildRequires: pkgconfig
BuildRequires: wayland-devel
+BuildRequires: pkgconfig(cmocka)
BuildRequires: pkgconfig(inih)
BuildRequires: pkgconfig(libseccomp)
BuildRequires: pkgconfig(scdoc)
@@ -49,10 +52,12 @@
%install
%meson_install
+install -Dm644 -t "%{buildroot}%{_userunitdir}" %SOURCE3 %SOURCE4
%files
%license LICENSE
%{_bindir}/%{name}
%{_mandir}/man1/%{name}.1%{?ext_man}
%{_mandir}/man5/%{name}.ini.5%{?ext_man}
+%{_userunitdir}/wob.*
++++++ wob-0.14.2.tar.gz -> wob-0.15.1.tar.gz ++++++
++++ 3987 lines of diff (skipped)
++++++ wob.keyring ++++++
--- /var/tmp/diff_new_pack.P58cPR/_old 2024-01-03 12:26:56.555761151 +0100
+++ /var/tmp/diff_new_pack.P58cPR/_new 2024-01-03 12:26:56.555761151 +0100
@@ -21,33 +21,40 @@
ORk+DfLuhS22ICQE+/Tz2DZropsO0v1RifTxbYSKWqpFeOx9534v1yPjc+pxFQGU
5QjurE5/PRGd38UCcgbcM5aeE9Ek0xvWKCwN1x0K1LOrqMkrJmmP2epibpI9gfJM
QoYx57g9ndfI0QS5+g8+q/aXoVvFRY3lnjtqeB6xFzR3oWrA12qTzoGNiAsWWwAR
-AQABwsB8BBgBCAAmAhsMFiEEXG2gJN3icXgHPqED9LQy1dZ5kOMFAmIUq0AFCQtr
-yH0ACgkQ9LQy1dZ5kOMmtAgAmnfqnP7ggfZ6LYIBfV4jTSbSXK0h7DtLuELadg4u
-CEqJIzf7w+VyobPF67Afda5kvQBjZ2loKeNzDVq30qxfrQSyP9sttvzFIFbLoGKN
-2m5NcV+68SQWxTDtK+5D4e7qvs6Bpd6sCvzX1afaZh2Jb5UnAAq3XY8EPP3TV/Z1
-rMDUNGAMl8NJ2vHn79ygSe/Pd68yevDPpxd/APLYH/AfzDkTCbRDSPDkaPOtDQ50
-mtJp+HnfOhiwjQWwngDo+gt4/h0uDMs4+ufjiE78zpCfWsUEwaiz7ENciCdTKREs
-5l6qfzMwAB9coFAiXsDL21GyGcMGNE83HCe2grQf+jKMCcLAfAQYAQgAJgIbDBYh
-BFxtoCTd4nF4Bz6hA/S0MtXWeZDjBQJgH9OCBQkJdvC/AAoJEPS0MtXWeZDj4j8H
-/RviayuP8sGHav/li9hhfMHUirm6wb1kjONzDizWrVV38MsvBNtscm+xNFI4tSg8
-jDineZy26IsS+o+ttJmZTwGIuWu6eHOOU67Fi5DBIVwcQM8APtmZYcVDIGcczzOh
-BcKlqT2JXOatjULej8I11BZDkRcYwjK/7SuK5quvw0R6qaQlabLt4+aovIiHeY6Q
-wukdG/cgPYM30ybtu3cjuqGDa1zWX5JKpDQsSdHYhshVi8TNsPdoSUSPNzcYDa+J
-lsMFlTMBXZQX9SdTLNeeclWc4CIiT1R6SK0kwqn2c6OxMsLBt2VNVdxq3I9bloos
-U/wQdQwxPhijMgGDvcc1p+LCwHwEGAEIACYCGwwWIQRcbaAk3eJxeAc+oQP0tDLV
-1nmQ4wUCXjRZSQUJB4t2hgAKCRD0tDLV1nmQ4y+1B/0dvqe2O5qNmWQsKTT2kmda
-S02j3dywq+LPZWhNr6vPmnFbSJ1A8+w1+PZziN1Rbf/ckmBD5v3TgTROJny4SOkO
-mYk6zV3VfKZqL/ERrFfxR1Hf6KklcqWijkemMU8Vf5pvlCgRe+sk6Uxd/MQszB+i
-5FFlRVVZJrRKCnvTERBj1n0m1AgW1IGsrODfnN8+ld2H9rkfb6X6vloJYtcKQUL8
-x5JH550l+OaK5iO49iOg87D8D66h+e+QcHZ1KUhUAcs/KXPPirWwFE/qDDRaVI65
-ASFP5CbykKnWNbxPyP1+wa745/Vv84PbPj65VzIPBSwMGInEkD/rT3bJMt9MhDAa
-wsB8BBgBCAAmAhsMFiEEXG2gJN3icXgHPqED9LQy1dZ5kOMFAlxUzt0FCQWr7BoA
-CgkQ9LQy1dZ5kON83QgApT+Ajn5n0U5aE5gvnAzgxX2SbXmShokh8cfI3bKUs358
-vvfhIealri/N4FDHDvAoSaaeAiPL0oIIudvMCy8mP4vdYLq+l9OiDp7WbtY5CPuL
-kmdDtOBXrxMtb80Qhl3bIupEN1b3dIMf/kWxmPUsnF4e4an8a6KZvT5judqMYOlH
-YNFjQgeU4iKYLKh3Cw3KejhJ7+tOABm0oUtB6/L1nkbJMB6qNJbvU7DqRttLNvM1
-q1gc5agT2qlgwFpAF3v3GG0uFmxxTe5hqQcuFPnCIaVkV1dItnCxPlyvjZ62R5Tx
-5RRScfeE2mfJNtSiaTrt5MkcLVk1Eaq9j2oybKAOjg==
-=5E19
+AQABwsB8BBgBCAAmAhsMFiEEXG2gJN3icXgHPqED9LQy1dZ5kOMFAmP334gFCQ1O
+/MUACgkQ9LQy1dZ5kOM3yQf+PveCL3+qHYXcGsrbeu4y5w6z0TRImGNfZb2i6gJy
+kaeXSaKLlsF8KVQlNMjBiuLcbTiMhI/ZgIHJrmUl6i6kCBbDlJfTzLR+ic0Ltbyq
+4QeYglSRHBhbEaoXVtiu9hR8JPKMNBfjAzVkVUt+9OJPEVADFbVvkZOgAfk4s3z7
+C9nN27DrqBgp4DWoftIjhH4sroGCLlOEhLgTgAUaoP2OFuZUtof3sz6e3EczPceJ
+7QmO0Az21AMNRPNn7Jq32y6dLD4BBjrN7i321j5HpOuH9iWW0ruUYRocoEf1C5Hj
+2pGmSUy/5WhQNk77p3Txp0mcXOJ3QcmG6JH5Wss3hOb2bsLAfAQYAQgAJgIbDBYh
+BFxtoCTd4nF4Bz6hA/S0MtXWeZDjBQJiFKtABQkLa8h9AAoJEPS0MtXWeZDjJrQI
+AJp36pz+4IH2ei2CAX1eI00m0lytIew7S7hC2nYOLghKiSM3+8PlcqGzxeuwH3Wu
+ZL0AY2dpaCnjcw1at9KsX60Esj/bLbb8xSBWy6BijdpuTXFfuvEkFsUw7SvuQ+Hu
+6r7OgaXerAr819Wn2mYdiW+VJwAKt12PBDz901f2dazA1DRgDJfDSdrx5+/coEnv
+z3evMnrwz6cXfwDy2B/wH8w5Ewm0Q0jw5GjzrQ0OdJrSafh53zoYsI0FsJ4A6PoL
+eP4dLgzLOPrn44hO/M6Qn1rFBMGos+xDXIgnUykRLOZeqn8zMAAfXKBQIl7Ay9tR
+shnDBjRPNxwntoK0H/oyjAnCwHwEGAEIACYCGwwWIQRcbaAk3eJxeAc+oQP0tDLV
+1nmQ4wUCYB/TggUJCXbwvwAKCRD0tDLV1nmQ4+I/B/0b4msrj/LBh2r/5YvYYXzB
+1Iq5usG9ZIzjcw4s1q1Vd/DLLwTbbHJvsTRSOLUoPIw4p3mctuiLEvqPrbSZmU8B
+iLlrunhzjlOuxYuQwSFcHEDPAD7ZmWHFQyBnHM8zoQXCpak9iVzmrY1C3o/CNdQW
+Q5EXGMIyv+0riuarr8NEeqmkJWmy7ePmqLyIh3mOkMLpHRv3ID2DN9Mm7bt3I7qh
+g2tc1l+SSqQ0LEnR2IbIVYvEzbD3aElEjzc3GA2viZbDBZUzAV2UF/UnUyzXnnJV
+nOAiIk9UekitJMKp9nOjsTLCwbdlTVXcatyPW5aKLFP8EHUMMT4YozIBg73HNafi
+wsB8BBgBCAAmAhsMFiEEXG2gJN3icXgHPqED9LQy1dZ5kOMFAl40WUkFCQeLdoYA
+CgkQ9LQy1dZ5kOMvtQf9Hb6ntjuajZlkLCk09pJnWktNo93csKviz2VoTa+rz5px
+W0idQPPsNfj2c4jdUW3/3JJgQ+b904E0TiZ8uEjpDpmJOs1d1Xymai/xEaxX8UdR
+3+ipJXKloo5HpjFPFX+ab5QoEXvrJOlMXfzELMwfouRRZUVVWSa0Sgp70xEQY9Z9
+JtQIFtSBrKzg35zfPpXdh/a5H2+l+r5aCWLXCkFC/MeSR+edJfjmiuYjuPYjoPOw
+/A+uofnvkHB2dSlIVAHLPylzz4q1sBRP6gw0WlSOuQEhT+Qm8pCp1jW8T8j9fsGu
++Of1b/OD2z4+uVcyDwUsDBiJxJA/6092yTLfTIQwGsLAfAQYAQgAJgIbDBYhBFxt
+oCTd4nF4Bz6hA/S0MtXWeZDjBQJcVM7dBQkFq+waAAoJEPS0MtXWeZDjfN0IAKU/
+gI5+Z9FOWhOYL5wM4MV9km15koaJIfHHyN2ylLN+fL734SHmpa4vzeBQxw7wKEmm
+ngIjy9KCCLnbzAsvJj+L3WC6vpfTog6e1m7WOQj7i5JnQ7TgV68TLW/NEIZd2yLq
+RDdW93SDH/5FsZj1LJxeHuGp/Guimb0+Y7najGDpR2DRY0IHlOIimCyodwsNyno4
+Se/rTgAZtKFLQevy9Z5GyTAeqjSW71Ow6kbbSzbzNatYHOWoE9qpYMBaQBd79xht
+LhZscU3uYakHLhT5wiGlZFdXSLZwsT5cr42etkeU8eUUUnH3hNpnyTbUomk67eTJ
+HC1ZNRGqvY9qMmygDo4=
+=4PnC
-----END PGP PUBLIC KEY BLOCK-----
++++++ wob.service ++++++
[Unit]
Description=A lightweight overlay volume/backlight/progress/anything bar for Wayland
Documentation=man:wob(1)
PartOf=graphical-session.target
After=graphical-session.target
ConditionEnvironment=WAYLAND_DISPLAY
[Service]
StandardInput=socket
ExecStart=/usr/bin/wob
[Install]
WantedBy=graphical-session.target
++++++ wob.socket ++++++
[Socket]
ListenFIFO=%t/wob.sock
SocketMode=0600
RemoveOnStop=on
# If wob exits on invalid input, systemd should NOT shove following input right back into it after it restarts
FlushPending=yes
[Install]
WantedBy=sockets.target
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package libsidplayfp for openSUSE:Factory checked in at 2024-01-03 12:26:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libsidplayfp (Old)
and /work/SRC/openSUSE:Factory/.libsidplayfp.new.28375 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libsidplayfp"
Wed Jan 3 12:26:49 2024 rev:10 rq:1136207 version:2.6.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/libsidplayfp/libsidplayfp.changes 2023-07-08 22:47:52.303386087 +0200
+++ /work/SRC/openSUSE:Factory/.libsidplayfp.new.28375/libsidplayfp.changes 2024-01-03 12:26:51.351571106 +0100
@@ -1,0 +2,21 @@
+Mon Jan 1 10:04:11 UTC 2024 - Martin Hauke <mardnh(a)gmx.de>
+
+- Update to version 2.6.0
+ * residfp is now thread-safe.
+ * residfp: fixed SSE2 version of convolve.
+ * residfp: updated combined waveforms model.
+ * residfp: amplify the output by a model dependent scale factor.
+ * a couple of autotools fixes.
+
+-------------------------------------------------------------------
+Sat Dec 23 11:33:14 UTC 2023 - Martin Hauke <mardnh(a)gmx.de>
+
+- >Update to version 2.5.1
+ * Check for {g,}od at configure time.
+ * residfp: fix a 6581 filter bug where values could actually go
+ negative.
+ * Sync resid with upstream.
+- Drop patch:
+ * fix-missing-include.patch (not longer needed)
+
+-------------------------------------------------------------------
Old:
----
fix-missing-include.patch
libsidplayfp-2.5.0.tar.gz
New:
----
libsidplayfp-2.6.0.tar.gz
BETA DEBUG BEGIN:
Old:- Drop patch:
* fix-missing-include.patch (not longer needed)
BETA DEBUG END:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libsidplayfp.spec ++++++
--- /var/tmp/diff_new_pack.DExsAi/_old 2024-01-03 12:26:53.015631873 +0100
+++ /var/tmp/diff_new_pack.DExsAi/_new 2024-01-03 12:26:53.023632165 +0100
@@ -1,7 +1,7 @@
#
# spec file for package libsidplayfp
#
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,15 +19,14 @@
%define soname 6
%define stilview_soname 0
Name: libsidplayfp
-Version: 2.5.0
+Version: 2.6.0
Release: 0
Summary: A library to play Commodore 64 music
License: GPL-2.0-or-later
Group: System/Libraries
#Git-Clone: https://github.com/libsidplayfp/libsidplayfp.git
URL: https://sourceforge.net/projects/sidplay-residfp/
-Source0: https://sourceforge.net/projects/sidplay-residfp/files/libsidplayfp/2.5/lib…
-Patch0: fix-missing-include.patch
+Source0: https://sourceforge.net/projects/sidplay-residfp/files/libsidplayfp/2.6/lib…
BuildRequires: gcc-c++
BuildRequires: libgcrypt-devel
BuildRequires: pkgconfig
++++++ libsidplayfp-2.5.0.tar.gz -> libsidplayfp-2.6.0.tar.gz ++++++
++++ 1910 lines of diff (skipped)
++++ retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libsidplayfp-2.5.0/AUTHORS new/libsidplayfp-2.6.0/AUTHORS
--- old/libsidplayfp-2.5.0/AUTHORS 2023-06-02 14:55:01.000000000 +0200
+++ new/libsidplayfp-2.6.0/AUTHORS 2024-01-01 08:59:03.000000000 +0100
@@ -5,7 +5,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 libsidplayfp emulator engine source code
contains the following contributed or derived work. In the order they first
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libsidplayfp-2.5.0/Makefile.am new/libsidplayfp-2.6.0/Makefile.am
--- old/libsidplayfp-2.5.0/Makefile.am 2023-06-02 14:55:01.000000000 +0200
+++ new/libsidplayfp-2.6.0/Makefile.am 2024-01-01 08:59:03.000000000 +0100
@@ -13,12 +13,6 @@
W32_LDFLAGS = -no-undefined
endif
-if MACOS
- OD = god
-else
- OD = od
-endif
-
if HAVE_VISIBILITY
VISIBILITY_CXXFLAGS = -fvisibility=hidden -fvisibility-inlines-hidden
endif
@@ -466,6 +460,8 @@
.a65.bin:
o65file=`echo $@ | sed 's/bin/o65/'`;\
- xa -R -G $< -o $$o65file &&\
+ [ -n "$(OD)" ] || { echo "od not found"; false; } &&\
+ [ -n "$(XA)" ] || { echo "xa not found"; false; } &&\
+ ${XA} -R -G $< -o $$o65file &&\
${OD} -v -An -w8 -tx1 $$o65file | sed -re 's/[[:alnum:]]+/0x&,/g' > $@ &&\
${RM} $$o65file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libsidplayfp-2.5.0/NEWS new/libsidplayfp-2.6.0/NEWS
--- old/libsidplayfp-2.5.0/NEWS 2023-06-02 14:55:01.000000000 +0200
+++ new/libsidplayfp-2.6.0/NEWS 2024-01-01 08:59:03.000000000 +0100
@@ -1,3 +1,19 @@
+2.6.0 2024-01-01
+* residfp is now thread-safe (#71)
+* residfp: fixed SSE2 version of convolve (#105)
+* residfp: updated combined waveforms model (#97)
+* residfp: amplify the output by a model dependent scale factor (#78, #79)
+* a couple of autotools fixes (#103, #104, #108)
+
+
+
+2.5.1 2023-12-23
+* Check for {g,}od at configure time (#87)
+* residfp: fix a 6581 filter bug where values could actually go negative
+* Sync resid with upstream
+
+
+
2.5.0 2023-06-02
* residfp: reworked the combined waveforms model by separating pulldown effect from waveform generation
* residfp: tweaked the 8580 filter parameters for increased volume and less distortion (#45)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libsidplayfp-2.5.0/configure.ac new/libsidplayfp-2.6.0/configure.ac
--- old/libsidplayfp-2.5.0/configure.ac 2023-06-02 14:55:01.000000000 +0200
+++ new/libsidplayfp-2.6.0/configure.ac 2024-01-01 08:59:03.000000000 +0100
@@ -1,8 +1,9 @@
m4_define([lib_major], [2])
-m4_define([lib_minor], [5])
+m4_define([lib_minor], [6])
m4_define([lib_level], [0])
m4_define([lib_version], [lib_major.lib_minor.lib_level])
+AC_PREREQ([2.62])
AC_INIT([libsidplayfp],[lib_version],[],[],[https://github.com/libsidplayfp…
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_MACRO_DIRS([m4 src/builders/exsid-builder/driver/m4])
@@ -37,12 +38,12 @@
AC_LANG([C++])
AX_CXX_COMPILE_STDCXX_17([noext], [optional])
-AS_IF([test $ax_cv_cxx_compile_cxx17__std_cpp17 != "yes"],
+AS_IF([test $ax_cv_cxx_compile_cxx17__std_cpp17 != "yes"], [
AX_CXX_COMPILE_STDCXX_14([noext], [optional])
AS_IF([test $ax_cv_cxx_compile_cxx14__std_cpp14 != "yes"],
AX_CXX_COMPILE_STDCXX_11([noext], [optional])
)
-)
+])
dnl check for hidden visibility support
AX_CHECK_COMPILE_FLAG([-fvisibility=hidden -fvisibility-inlines-hidden], [has_visibility=yes], [has_visibility=no])
@@ -80,6 +81,14 @@
[AC_CHECK_FUNCS([strncasecmp])]
)
+AC_CHECK_PROGS([XA], [xa])
+
+# od on macOS doesn't support the -w parameter
+AC_CACHE_CHECK([for od that supports -w], [ac_cv_path_OD],
+ [AC_PATH_PROGS_FEATURE_CHECK([OD], [od god],
+ [[$ac_path_OD -w > /dev/null 2>&1 && ac_cv_path_OD=$ac_path_OD]])]
+)
+AC_SUBST([OD], [$ac_cv_path_OD])
dnl libtool-style version-info number
#
@@ -92,7 +101,7 @@
# Increase the age value only if the changes made to the ABI are backward compatible.
LIBSIDPLAYCUR=9
-LIBSIDPLAYREV=27
+LIBSIDPLAYREV=29
LIBSIDPLAYAGE=3
LIBSIDPLAYVERSION=$LIBSIDPLAYCUR:$LIBSIDPLAYREV:$LIBSIDPLAYAGE
@@ -243,14 +252,17 @@
[AS_HELP_STRING([--enable-tests],
[enable unit tests [default=no]]
)],
+ [],
+ [enable_tests=no]
+)
+
+AS_IF([test "x$enable_tests" != "xno"],
[[echo Enabling unit tests]
PKG_CHECK_MODULES(UNITTEST, [UnitTest++])
- [am_unittest=true]
- ],
- [am_unittest=false]
+ ]
)
-AM_CONDITIONAL([ENABLE_TEST], [test x$am_unittest = xtrue])
+AM_CONDITIONAL([ENABLE_TEST], [test x$enable_tests = xyes])
AC_ARG_WITH([gcrypt], AS_HELP_STRING([--with-gcrypt], [Build with the gcrypt library]))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libsidplayfp-2.5.0/docs/mainpage.dox new/libsidplayfp-2.6.0/docs/mainpage.dox
--- old/libsidplayfp-2.5.0/docs/mainpage.dox 2023-06-02 14:55:01.000000000 +0200
+++ new/libsidplayfp-2.6.0/docs/mainpage.dox 2024-01-01 08:59:03.000000000 +0100
@@ -11,7 +11,7 @@
Copyright (c) 2000-2001 Simon White<br/>
Copyright (c) 2007-2010 Antti Lankila<br/>
-Copyright (c) 2010-2023 Leandro Nini <drfiemost(a)users.sourceforge.net><br/>
+Copyright (c) 2010-2024 Leandro Nini <drfiemost(a)users.sourceforge.net><br/>
<br/>
STILView (or more precisely, the STIL class written in C++) is intended to be
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libsidplayfp-2.5.0/m4/ax_cxx_compile_stdcxx.m4 new/libsidplayfp-2.6.0/m4/ax_cxx_compile_stdcxx.m4
--- old/libsidplayfp-2.5.0/m4/ax_cxx_compile_stdcxx.m4 2023-06-02 14:55:01.000000000 +0200
+++ new/libsidplayfp-2.6.0/m4/ax_cxx_compile_stdcxx.m4 2024-01-01 08:59:03.000000000 +0100
@@ -43,7 +43,7 @@
# and this notice are preserved. This file is offered as-is, without any
# warranty.
-#serial 15
+#serial 18
dnl This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro
dnl (serial version number 13).
@@ -104,9 +104,18 @@
dnl HP's aCC needs +std=c++11 according to:
dnl http://h21007.www2.hp.com/portal/download/files/unprot/aCxx/PDF_Release_Not…
dnl Cray's crayCC needs "-h std=c++11"
+ dnl MSVC needs -std:c++NN for C++17 and later (default is C++14)
for alternative in ${ax_cxx_compile_alternatives}; do
- for switch in -std=c++${alternative} +std=c++${alternative} "-h std=c++${alternative}"; do
- cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch])
+ for switch in -std=c++${alternative} +std=c++${alternative} "-h std=c++${alternative}" MSVC; do
+ if test x"$switch" = xMSVC; then
+ dnl AS_TR_SH maps both `:` and `=` to `_` so -std:c++17 would collide
+ dnl with -std=c++17. We suffix the cache variable name with _MSVC to
+ dnl avoid this.
+ switch=-std:c++${alternative}
+ cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_${switch}_MSVC])
+ else
+ cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch])
+ fi
AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch,
$cachevar,
[ac_save_CXX="$CXX"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libsidplayfp-2.5.0/src/builders/exsid-builder/exsid-emu.cpp new/libsidplayfp-2.6.0/src/builders/exsid-builder/exsid-emu.cpp
--- old/libsidplayfp-2.5.0/src/builders/exsid-builder/exsid-emu.cpp 2023-06-02 14:55:01.000000000 +0200
+++ new/libsidplayfp-2.6.0/src/builders/exsid-builder/exsid-emu.cpp 2024-01-01 08:59:03.000000000 +0100
@@ -35,18 +35,9 @@
const char* exSID::getCredits()
{
- static std::string credits;
-
- if (credits.empty())
- {
- // Setup credits
- std::ostringstream ss;
- ss << "exSID V" << VERSION << " Engine:\n";
- ss << "\t(C) 2015-2017,2021 Thibaut VARENE\n";
- credits = ss.str();
- }
-
- return credits.c_str();
+ return
+ "exSID V" VERSION " Engine:\n"
+ "\t(C) 2015-2017,2021 Thibaut VARENE\n";
}
exSID::exSID(sidbuilder *builder) :
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libsidplayfp-2.5.0/src/builders/hardsid-builder/hardsid-emu-unix.cpp new/libsidplayfp-2.6.0/src/builders/hardsid-builder/hardsid-emu-unix.cpp
--- old/libsidplayfp-2.5.0/src/builders/hardsid-builder/hardsid-emu-unix.cpp 2023-06-02 14:55:01.000000000 +0200
+++ new/libsidplayfp-2.6.0/src/builders/hardsid-builder/hardsid-emu-unix.cpp 2024-01-01 08:59:03.000000000 +0100
@@ -55,18 +55,9 @@
const char* HardSID::getCredits()
{
- static std::string credits;
-
- if (credits.empty())
- {
- // Setup credits
- std::ostringstream ss;
- ss << "HardSID V" << VERSION << " Engine:\n";
- ss << "\t(C) 2001-2002 Jarno Paanenen\n";
- credits = ss.str();
- }
-
- return credits.c_str();
+ return
+ "HardSID V" VERSION " Engine:\n"
+ "\t(C) 2001-2002 Jarno Paanenen\n";
}
HardSID::HardSID (sidbuilder *builder) :
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libsidplayfp-2.5.0/src/builders/hardsid-builder/hardsid-emu-win.cpp new/libsidplayfp-2.6.0/src/builders/hardsid-builder/hardsid-emu-win.cpp
--- old/libsidplayfp-2.5.0/src/builders/hardsid-builder/hardsid-emu-win.cpp 2023-06-02 14:55:01.000000000 +0200
+++ new/libsidplayfp-2.6.0/src/builders/hardsid-builder/hardsid-emu-win.cpp 2024-01-01 08:59:03.000000000 +0100
@@ -48,18 +48,9 @@
const char* HardSID::getCredits()
{
- static std::string credits;
-
- if (credits.empty())
- {
- // Setup credits
- std::ostringstream ss;
- ss << "HardSID V" << VERSION << " Engine:\n";
- ss << "\t(C) 1999-2002 Simon White\n";
- credits = ss.str();
- }
-
- return credits.c_str();
+ return
+ "HardSID V" VERSION " Engine:\n"
+ "\t(C) 1999-2002 Simon White\n";
}
HardSID::HardSID(sidbuilder *builder) :
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libsidplayfp-2.5.0/src/builders/resid-builder/resid/filter8580new.cc new/libsidplayfp-2.6.0/src/builders/resid-builder/resid/filter8580new.cc
--- old/libsidplayfp-2.5.0/src/builders/resid-builder/resid/filter8580new.cc 2023-06-02 14:55:03.000000000 +0200
+++ new/libsidplayfp-2.6.0/src/builders/resid-builder/resid/filter8580new.cc 2024-01-01 08:59:05.000000000 +0100
@@ -508,10 +508,11 @@
// kVg_Vx = k*Vg - Vx
// I.e. if k != 1.0, Vg must be scaled accordingly.
- for (int kVg_Vx = 0; kVg_Vx < (1 << 16); kVg_Vx++) {
+ for (int i = 0; i < (1 << 16); i++) {
+ int kVg_Vx = i - (1 << 15);
double log_term = log1p(exp((kVg_Vx/N16 - kVt)/(2*Ut)));
// Scaled by m*2^15
- vcr_n_Ids_term[kVg_Vx] = (unsigned short)(n_Is*log_term*log_term);
+ vcr_n_Ids_term[i] = (unsigned short)(n_Is*log_term*log_term);
}
} else {
// 8580 only
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libsidplayfp-2.5.0/src/builders/resid-builder/resid/filter8580new.h new/libsidplayfp-2.6.0/src/builders/resid-builder/resid/filter8580new.h
--- old/libsidplayfp-2.5.0/src/builders/resid-builder/resid/filter8580new.h 2023-06-02 14:55:03.000000000 +0200
+++ new/libsidplayfp-2.6.0/src/builders/resid-builder/resid/filter8580new.h 2024-01-01 08:59:05.000000000 +0100
@@ -1799,10 +1799,8 @@
int kVg = vcr_kVg[(Vddt_Vw_2 + (Vgdt_2 >> 1)) >> 16];
// VCR voltages for EKV model table lookup.
- int Vgs = kVg - vx;
- if (Vgs < 0) Vgs = 0;
- int Vgd = kVg - vi;
- if (Vgd < 0) Vgd = 0;
+ int Vgs = kVg - vx + (1 << 15);
+ int Vgd = kVg - vi + (1 << 15);
// VCR current, scaled by m*2^15*2^15 = m*2^30
int n_I_vcr = int(unsigned(vcr_n_Ids_term[Vgs] - vcr_n_Ids_term[Vgd]) << 15);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libsidplayfp-2.5.0/src/builders/resid-builder/resid/wave.cc new/libsidplayfp-2.6.0/src/builders/resid-builder/resid/wave.cc
--- old/libsidplayfp-2.5.0/src/builders/resid-builder/resid/wave.cc 2023-06-02 14:55:03.000000000 +0200
+++ new/libsidplayfp-2.6.0/src/builders/resid-builder/resid/wave.cc 2024-01-01 08:59:05.000000000 +0100
@@ -172,22 +172,28 @@
bool do_pre_writeback(reg8 waveform_prev, reg8 waveform, bool is6581)
{
// no writeback without combined waveforms
- if (likely(waveform_prev <= 0x8))
+ if (likely(waveform_prev <= 0x8)) {
return false;
+ }
+#if 0
// This need more investigation
- if (waveform == 8)
+ if (waveform == 8) {
return false;
+ }
+#endif
if (waveform_prev == 0xc) {
- if (is6581)
+ if (is6581) {
return false;
- else if ((waveform != 0x9) && (waveform != 0xe))
+ } else if ((waveform != 0x9) && (waveform != 0xe)) {
return false;
+ }
}
// What's happening here?
if (is6581 &&
((((waveform_prev & 0x3) == 0x1) && ((waveform & 0x3) == 0x2))
- || (((waveform_prev & 0x3) == 0x2) && ((waveform & 0x3) == 0x1))))
+ || (((waveform_prev & 0x3) == 0x2) && ((waveform & 0x3) == 0x1)))) {
return false;
+ }
// ok do the writeback
return true;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libsidplayfp-2.5.0/src/builders/residfp-builder/residfp/Dac.cpp new/libsidplayfp-2.6.0/src/builders/residfp-builder/residfp/Dac.cpp
--- old/libsidplayfp-2.5.0/src/builders/residfp-builder/residfp/Dac.cpp 2023-06-02 14:55:01.000000000 +0200
+++ new/libsidplayfp-2.6.0/src/builders/residfp-builder/residfp/Dac.cpp 2024-01-01 08:59:03.000000000 +0100
@@ -60,6 +60,8 @@
// 6581 DACs are not terminated by a 2R resistor
const bool term = chipModel == MOS8580;
+ double Vsum = 0.;
+
// Calculate voltage contribution by each individual bit in the R-2R ladder.
for (unsigned int set_bit = 0; set_bit < dacLength; set_bit++)
{
@@ -102,16 +104,10 @@
}
dac[set_bit] = Vn;
+ Vsum += Vn;
}
// Normalize to integerish behavior
- double Vsum = 0.;
-
- for (unsigned int i = 0; i < dacLength; i++)
- {
- Vsum += dac[i];
- }
-
Vsum /= 1 << dacLength;
for (unsigned int i = 0; i < dacLength; i++)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libsidplayfp-2.5.0/src/builders/residfp-builder/residfp/ExternalFilter.h new/libsidplayfp-2.6.0/src/builders/residfp-builder/residfp/ExternalFilter.h
--- old/libsidplayfp-2.5.0/src/builders/residfp-builder/residfp/ExternalFilter.h 2023-06-02 14:55:01.000000000 +0200
+++ new/libsidplayfp-2.6.0/src/builders/residfp-builder/residfp/ExternalFilter.h 2024-01-01 08:59:03.000000000 +0100
@@ -35,7 +35,7 @@
* equipment impedance. Here we suppose an impedance of 10kOhm resulting
* in a 3 dB attenuation at 1.6Hz.
* To operate properly the 6581 audio output needs a pull-down resistor
- *(1KOhm recommended, not needed on 8580)
+ * (1KOhm recommended, not needed on 8580)
*
* ~~~
* 9/12V
@@ -80,7 +80,7 @@
*
* @param input
*/
- int clock(unsigned short input);
+ int clock(int input);
/**
* Constructor.
@@ -108,9 +108,9 @@
{
RESID_INLINE
-int ExternalFilter::clock(unsigned short input)
+int ExternalFilter::clock(int input)
{
- const int Vi = (static_cast<unsigned int>(input)<<11) - (1 << (11+15));
+ const int Vi = (input<<11) - (1 << (11+15));
const int dVlp = (w0lp_1_s7 * (Vi - Vlp) >> 7);
const int dVhp = (w0hp_1_s17 * (Vlp - Vhp) >> 17);
Vlp += dVlp;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libsidplayfp-2.5.0/src/builders/residfp-builder/residfp/FilterModelConfig6581.cpp new/libsidplayfp-2.6.0/src/builders/residfp-builder/residfp/FilterModelConfig6581.cpp
--- old/libsidplayfp-2.5.0/src/builders/residfp-builder/residfp/FilterModelConfig6581.cpp 2023-06-02 14:55:01.000000000 +0200
+++ new/libsidplayfp-2.6.0/src/builders/residfp-builder/residfp/FilterModelConfig6581.cpp 2024-01-01 08:59:03.000000000 +0100
@@ -22,11 +22,16 @@
#include "FilterModelConfig6581.h"
-#include <cmath>
-
#include "Integrator6581.h"
#include "OpAmp.h"
+#include "sidcxx11.h"
+
+#ifdef HAVE_CXX11
+# include <mutex>
+#endif
+#include <cmath>
+
namespace reSIDfp
{
@@ -90,8 +95,16 @@
std::unique_ptr<FilterModelConfig6581> FilterModelConfig6581::instance(nullptr);
+#ifdef HAVE_CXX11
+std::mutex Instance6581_Lock;
+#endif
+
FilterModelConfig6581* FilterModelConfig6581::getInstance()
{
+#ifdef HAVE_CXX11
+ std::lock_guard<std::mutex> lock(Instance6581_Lock);
+#endif
+
if (!instance.get())
{
instance.reset(new FilterModelConfig6581());
@@ -293,13 +306,14 @@
// kVgt_Vx = k*(Vg - Vt) - Vx
// I.e. if k != 1.0, Vg must be scaled accordingly.
- for (int kVgt_Vx = 0; kVgt_Vx < (1 << 16); kVgt_Vx++)
+ for (int i = 0; i < (1 << 16); i++)
{
+ const int kVgt_Vx = i - (1 << 15);
const double log_term = log1p(exp((kVgt_Vx / N16) / (2. * Ut)));
// Scaled by m*2^15
const double tmp = n_Is * log_term * log_term;
assert(tmp > -0.5 && tmp < 65535.5);
- vcr_n_Ids_term[kVgt_Vx] = static_cast<unsigned short>(tmp + 0.5);
+ vcr_n_Ids_term[i] = static_cast<unsigned short>(tmp + 0.5);
}
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libsidplayfp-2.5.0/src/builders/residfp-builder/residfp/FilterModelConfig8580.cpp new/libsidplayfp-2.6.0/src/builders/residfp-builder/residfp/FilterModelConfig8580.cpp
--- old/libsidplayfp-2.5.0/src/builders/residfp-builder/residfp/FilterModelConfig8580.cpp 2023-06-02 14:55:01.000000000 +0200
+++ new/libsidplayfp-2.6.0/src/builders/residfp-builder/residfp/FilterModelConfig8580.cpp 2024-01-01 08:59:03.000000000 +0100
@@ -25,7 +25,12 @@
#include "Integrator8580.h"
#include "OpAmp.h"
+#include "sidcxx11.h"
+#ifdef HAVE_CXX11
+# include <mutex>
+#endif
+
namespace reSIDfp
{
@@ -110,8 +115,16 @@
std::unique_ptr<FilterModelConfig8580> FilterModelConfig8580::instance(nullptr);
+#ifdef HAVE_CXX11
+std::mutex Instance8580_Lock;
+#endif
+
FilterModelConfig8580* FilterModelConfig8580::getInstance()
{
+#ifdef HAVE_CXX11
+ std::lock_guard<std::mutex> lock(Instance8580_Lock);
+#endif
+
if (!instance.get())
{
instance.reset(new FilterModelConfig8580());
@@ -122,7 +135,7 @@
FilterModelConfig8580::FilterModelConfig8580() :
FilterModelConfig(
- 0.30, // voice voltage range FIXME measure
+ 0.24, // voice voltage range FIXME measure
4.84, // voice DC voltage FIXME measure
22e-9, // capacitor value
9.09, // Vdd
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libsidplayfp-2.5.0/src/builders/residfp-builder/residfp/Integrator6581.h new/libsidplayfp-2.6.0/src/builders/residfp-builder/residfp/Integrator6581.h
--- old/libsidplayfp-2.5.0/src/builders/residfp-builder/residfp/Integrator6581.h 2023-06-02 14:55:01.000000000 +0200
+++ new/libsidplayfp-2.6.0/src/builders/residfp-builder/residfp/Integrator6581.h 2024-01-01 08:59:03.000000000 +0100
@@ -1,7 +1,7 @@
/*
* This file is part of libsidplayfp, a SID player engine.
*
- * Copyright 2011-2022 Leandro Nini <drfiemost(a)users.sourceforge.net>
+ * Copyright 2011-2023 Leandro Nini <drfiemost(a)users.sourceforge.net>
* Copyright 2007-2010 Antti Lankila
* Copyright 2004, 2010 Dag Lem <resid(a)nimrod.no>
*
@@ -242,10 +242,10 @@
#endif
// VCR voltages for EKV model table lookup.
- const int kVgt_Vs = (vx < kVgt) ? kVgt - vx : 0;
- assert(kVgt_Vs < (1 << 16));
- const int kVgt_Vd = (vi < kVgt) ? kVgt - vi : 0;
- assert(kVgt_Vd < (1 << 16));
+ const int kVgt_Vs = (kVgt - vx) + (1 << 15);
+ assert((kVgt_Vs >= 0) && (kVgt_Vs < (1 << 16)));
+ const int kVgt_Vd = (kVgt - vi) + (1 << 15);
+ assert((kVgt_Vd >= 0) && (kVgt_Vd < (1 << 16)));
// VCR current, scaled by m*2^15*2^15 = m*2^30
const unsigned int If = static_cast<unsigned int>(fmc->getVcr_n_Ids_term(kVgt_Vs)) << 15;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libsidplayfp-2.5.0/src/builders/residfp-builder/residfp/SID.cpp new/libsidplayfp-2.6.0/src/builders/residfp-builder/residfp/SID.cpp
--- old/libsidplayfp-2.5.0/src/builders/residfp-builder/residfp/SID.cpp 2023-06-02 14:55:01.000000000 +0200
+++ new/libsidplayfp-2.6.0/src/builders/residfp-builder/residfp/SID.cpp 2024-01-01 08:59:03.000000000 +0100
@@ -106,8 +106,8 @@
* On my 6581R4AR has 0x3A as the only value giving the same output level as 1.prg
*/
//@{
-unsigned int constexpr OFFSET_6581 = 0x380;
-unsigned int constexpr OFFSET_8580 = 0x9c0;
+const unsigned int OFFSET_6581 = 0x380;
+const unsigned int OFFSET_8580 = 0x9c0;
//@}
/**
@@ -128,8 +128,8 @@
* [2]: http://noname.c64.org/csdb/forums/?roomid=11&topicid=29025&showallposts=1
*/
//@{
-int constexpr BUS_TTL_6581 = 0x01d00;
-int constexpr BUS_TTL_8580 = 0xa2000;
+const int BUS_TTL_6581 = 0x01d00;
+const int BUS_TTL_8580 = 0xa2000;
//@}
SID::SID() :
@@ -211,11 +211,13 @@
{
case MOS6581:
filter = filter6581.get();
+ scaleFactor = 3;
modelTTL = BUS_TTL_6581;
break;
case MOS8580:
filter = filter8580.get();
+ scaleFactor = 5;
modelTTL = BUS_TTL_8580;
break;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libsidplayfp-2.5.0/src/builders/residfp-builder/residfp/SID.h new/libsidplayfp-2.6.0/src/builders/residfp-builder/residfp/SID.h
--- old/libsidplayfp-2.5.0/src/builders/residfp-builder/residfp/SID.h 2023-06-02 14:55:01.000000000 +0200
+++ new/libsidplayfp-2.6.0/src/builders/residfp-builder/residfp/SID.h 2024-01-01 08:59:03.000000000 +0100
@@ -87,6 +87,9 @@
/// SID voices
std::unique_ptr<Voice> voice[3];
+ /// Used to amplify the output by x/2 to get an adequate playback volume
+ int scaleFactor;
+
/// Time to live for the last written value
int busValueTtl;
@@ -318,7 +321,9 @@
const int v2 = voice[1]->output(voice[0]->wave());
const int v3 = voice[2]->output(voice[1]->wave());
- return externalFilter->clock(filter->clock(v1, v2, v3));
+ const int input = (scaleFactor * static_cast<unsigned int>(filter->clock(v1, v2, v3))) / 2;
+
+ return externalFilter->clock(input);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libsidplayfp-2.5.0/src/builders/residfp-builder/residfp/WaveformCalculator.cpp new/libsidplayfp-2.6.0/src/builders/residfp-builder/residfp/WaveformCalculator.cpp
--- old/libsidplayfp-2.5.0/src/builders/residfp-builder/residfp/WaveformCalculator.cpp 2023-06-02 14:55:01.000000000 +0200
+++ new/libsidplayfp-2.6.0/src/builders/residfp-builder/residfp/WaveformCalculator.cpp 2024-01-01 08:59:03.000000000 +0100
@@ -21,47 +21,45 @@
#include "WaveformCalculator.h"
+#include "sidcxx11.h"
+
+#include <map>
+#ifdef HAVE_CXX11
+# include <mutex>
+#endif
#include <cmath>
namespace reSIDfp
{
+/**
+ * Combined waveform model parameters.
+ */
+typedef float (*distance_t)(float, int);
+
+typedef struct
+{
+ distance_t distFunc;
+ float threshold;
+ float topbit;
+ float pulsestrength;
+ float distance1;
+ float distance2;
+} CombinedWaveformConfig;
+
+typedef std::map<const CombinedWaveformConfig*, matrix_t> cw_cache_t;
+
+cw_cache_t PULLDOWN_CACHE;
+#ifdef HAVE_CXX11
+std::mutex PULLDOWN_CACHE_Lock;
+#endif
+
WaveformCalculator* WaveformCalculator::getInstance()
{
static WaveformCalculator instance;
return &instance;
}
-/**
- * Parameters derived with the Monte Carlo method based on
- * samplings by kevtris. Code and data available in the project repository [1].
- *
- * The score here reported is the acoustic error
- * calculated XORing the estimated and the sampled values.
- * In parentheses the number of mispredicted bits.
- *
- * [1] https://github.com/libsidplayfp/combined-waveforms
- */
-const CombinedWaveformConfig config[2][5] =
-{
- { /* kevtris chip G (6581 R2) */
- {0.862147212f, 0.f, 10.8962431f, 2.50848103f }, // TS error 1941 (327/28672)
- {0.932746708f, 2.07508397f, 1.03668225f, 1.14876997f }, // PT error 5992 (126/32768)
- {0.860927045f, 2.43506575f, 0.908603609f, 1.07907593f }, // PS error 3693 (521/28672)
- {0.741343081f, 0.0452554375f, 1.1439606f, 1.05711341f }, // PTS error 338 ( 29/28672)
- {0.96f, 2.5f, 1.1f, 1.2f }, // NP guessed
- },
- { /* kevtris chip V (8580 R5) */
- {0.715788841f, 0.f, 1.32999945f, 2.2172699f }, // TS error 928 (135/32768)
- {0.93500334f, 1.05977178f, 1.08629429f, 1.43518543f }, // PT error 7991 (212/32768)
- {0.920648575f, 0.943601072f, 1.13034654f, 1.41881108f }, // PS error 12566 (394/32768)
- {0.90921098f, 0.979807794f, 0.942194462f, 1.40958893f }, // PTS error 2092 ( 60/32768)
- {0.95f, 1.15f, 1.f, 1.45f }, // NP guessed
- },
-};
-
-typedef float (*distance_t)(float, int);
-
// Distance functions
static float exponentialDistance(float distance, int i)
{
@@ -73,11 +71,80 @@
return 1.f / (1.f + i * distance);
}
-MAYBE_UNUSED static float quadraticDistance(float distance, int i)
+static float quadraticDistance(float distance, int i)
{
return 1.f / (1.f + (i*i) * distance);
}
+/**
+ * Parameters derived with the Monte Carlo method based on
+ * samplings from real machines.
+ * Code and data available in the project repository [1].
+ * Sampling program made by Dag Lem [2].
+ *
+ * The score here reported is the acoustic error
+ * calculated XORing the estimated and the sampled values.
+ * In parentheses the number of mispredicted bits.
+ *
+ * [1] https://github.com/libsidplayfp/combined-waveforms
+ * [2] https://github.com/daglem/reDIP-SID/blob/master/research/combsample.d64
+ */
+const CombinedWaveformConfig config[2][5] =
+{
+ { /* 6581 R3 4785 sampled by Trurl */
+ // TS error 2298 (339/32768)
+ { exponentialDistance, 0.776678205f, 1.18439901f, 0.f, 2.25732255f, 5.12803745f },
+ // PT error 582 (57/32768)
+ { linearDistance, 1.01866758f, 1.f, 2.69177628f, 0.0233543925f, 0.0850229636f },
+ // PS error 9242 (679/32768)
+ { linearDistance, 2.20329857f, 1.04501438f, 10.5146885f, 0.277294368f, 0.143747061f },
+ // PTS error 2799 (71/32768)
+ { linearDistance, 1.35652959f, 1.09051275f, 3.21098137f, 0.16658926f, 0.370252877f },
+ // NP guessed
+ { exponentialDistance, 0.96f, 1.f, 2.5f, 1.1f, 1.2f },
+ },
+#if 0
+ // weak cw
+ { /* 6581 R2 4383 sampled by ltx128 */
+ // TS error 1858 (204/32768)
+ { exponentialDistance, 0.886832297f, 1.f, 0.f, 2.14438701f, 9.51839447f },
+ // PT error 612 (102/32768)
+ { linearDistance, 1.01262534f, 1.f, 2.46070528f, 0.0537485816f, 0.0986242667f },
+ // PS error 8135 (575/32768)
+ { linearDistance, 2.14896345f, 1.0216713f, 10.5400085f, 0.244498149f, 0.126134038f },
+ // PTS error 2505 (63/32768)
+ { linearDistance, 1.29061747f, 0.9754318f, 3.15377498f, 0.0968349651f, 0.318573922f },
+ // NP guessed
+ { exponentialDistance, 0.96f, 1.f, 2.5f, 1.1f, 1.2f },
+ },
+ // strong cw
+ { /* 6581 R2 0384 sampled by Trurl */
+ // TS error 20337 (1579/32768)
+ { exponentialDistance, 0.000637792516f, 1.56725872f, 0.f, 0.00036806846f, 1.51800942f },
+ // PT error 5194 (240/32768)
+ { linearDistance, 0.924824238f, 1.f, 1.96749473f, 0.0891806409f, 0.234794483f },
+ // PS error 31015 (2181/32768)
+ { linearDistance, 1.2328074f, 0.73079139f, 3.9719491f, 0.00156516861f, 0.314677745f },
+ // PTS error 9874 (201/32768)
+ { linearDistance, 1.08558261f, 0.857638359f, 1.52781796f, 0.152927235f, 1.02657032f },
+ // NP guessed
+ { exponentialDistance, 0.96f, 1.f, 2.5f, 1.1f, 1.2f },
+ },
+#endif
+ { /* 8580 R5 5092 25 sampled by reFX-Mike */
+ // TS error 1212 (183/32768)
+ { exponentialDistance, 0.684999049f, 0.916620493f, 0.f, 1.14715648f, 2.02339816f },
+ // PT error 6153 (295/32768)
+ { exponentialDistance, 0.940367579, 1.f, 1.26695442f, 0.976729453f, 1.57954705f },
+ // PS error 7620 (454/32768)
+ { quadraticDistance, 0.963866293f, 1.22095084f, 1.01380754f, 0.0110885892f, 0.381492466f },
+ // PTS error 3701 (117/32768)
+ { linearDistance, 0.976761818f, 0.202727556f, 0.988633931f, 0.939373314f, 9.37139416f },
+ // NP guessed
+ { exponentialDistance, 0.95f, 1.f, 1.15f, 1.f, 1.45f },
+ },
+};
+
/// Calculate triangle waveform
static unsigned int triXor(unsigned int val)
{
@@ -92,7 +159,7 @@
* @param threshold
* @param accumulator the high bits of the accumulator value
*/
-short calculatePulldown(float distancetable[], float pulsestrength, float threshold, unsigned int accumulator)
+short calculatePulldown(float distancetable[], float topbit, float pulsestrength, float threshold, unsigned int accumulator)
{
unsigned char bit[12];
@@ -101,6 +168,8 @@
bit[i] = (accumulator & (1u << i)) != 0 ? 1 : 0;
}
+ bit[11] *= topbit;
+
float pulldown[12];
for (int sb = 0; sb < 12; sb++)
@@ -155,6 +224,10 @@
matrix_t* WaveformCalculator::buildPulldownTable(ChipModel model)
{
+#ifdef HAVE_CXX11
+ std::lock_guard<std::mutex> lock(PULLDOWN_CACHE_Lock);
+#endif
+
const CombinedWaveformConfig* cfgArray = config[model == MOS6581 ? 0 : 1];
cw_cache_t::iterator lb = PULLDOWN_CACHE.lower_bound(cfgArray);
@@ -170,7 +243,7 @@
{
const CombinedWaveformConfig& cfg = cfgArray[wav];
- const distance_t distFunc = exponentialDistance;
+ const distance_t distFunc = cfg.distFunc;
float distancetable[12 * 2 + 1];
distancetable[12] = 1.f;
@@ -182,7 +255,7 @@
for (unsigned int idx = 0; idx < (1u << 12); idx++)
{
- pdTable[wav][idx] = calculatePulldown(distancetable, cfg.pulsestrength, cfg.threshold, idx);
+ pdTable[wav][idx] = calculatePulldown(distancetable, cfg.topbit, cfg.pulsestrength, cfg.threshold, idx);
}
}
#ifdef HAVE_CXX11
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libsidplayfp-2.5.0/src/builders/residfp-builder/residfp/WaveformCalculator.h new/libsidplayfp-2.6.0/src/builders/residfp-builder/residfp/WaveformCalculator.h
--- old/libsidplayfp-2.5.0/src/builders/residfp-builder/residfp/WaveformCalculator.h 2023-06-02 14:55:01.000000000 +0200
+++ new/libsidplayfp-2.6.0/src/builders/residfp-builder/residfp/WaveformCalculator.h 2024-01-01 08:59:03.000000000 +0100
@@ -22,10 +22,8 @@
#ifndef WAVEFORMCALCULATOR_h
#define WAVEFORMCALCULATOR_h
-#include <map>
-
#include "array.h"
-#include "sidcxx11.h"
+
#include "siddefs-fp.h"
@@ -33,35 +31,24 @@
{
/**
- * Combined waveform model parameters.
- */
-typedef struct
-{
- float threshold;
- float pulsestrength;
- float distance1;
- float distance2;
-} CombinedWaveformConfig;
-
-/**
* Combined waveform calculator for WaveformGenerator.
* By combining waveforms, the bits of each waveform are effectively short
- * circuited. A zero bit in one waveform will result in a zero output bit
- * (thus the infamous claim that the waveforms are AND'ed).
+ * circuited, a zero bit in one waveform will result in a zero output bit,
+ * thus the claim that the waveforms are AND'ed.
* However, a zero bit in one waveform may also affect the neighboring bits
* in the output.
*
* Example:
- *
+ *
* 1 1
* Bit # 1 0 9 8 7 6 5 4 3 2 1 0
* -----------------------
* Sawtooth 0 0 0 1 1 1 1 1 1 0 0 0
- *
+ *
* Triangle 0 0 1 1 1 1 1 1 0 0 0 0
- *
+ *
* AND 0 0 0 1 1 1 1 1 0 0 0 0
- *
+ *
* Output 0 0 0 0 1 1 1 0 0 0 0 0
*
*
@@ -99,13 +86,8 @@
class WaveformCalculator
{
private:
- typedef std::map<const CombinedWaveformConfig*, matrix_t> cw_cache_t;
-
-private:
matrix_t wftable;
- cw_cache_t PULLDOWN_CACHE;
-
private:
WaveformCalculator();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libsidplayfp-2.5.0/src/builders/residfp-builder/residfp/WaveformGenerator.cpp new/libsidplayfp-2.6.0/src/builders/residfp-builder/residfp/WaveformGenerator.cpp
--- old/libsidplayfp-2.5.0/src/builders/residfp-builder/residfp/WaveformGenerator.cpp 2023-06-02 14:55:01.000000000 +0200
+++ new/libsidplayfp-2.6.0/src/builders/residfp-builder/residfp/WaveformGenerator.cpp 2024-01-01 08:59:03.000000000 +0100
@@ -1,7 +1,7 @@
/*
* This file is part of libsidplayfp, a SID player engine.
*
- * Copyright 2011-2022 Leandro Nini <drfiemost(a)users.sourceforge.net>
+ * Copyright 2011-2023 Leandro Nini <drfiemost(a)users.sourceforge.net>
* Copyright 2007-2010 Antti Lankila
* Copyright 2004 Dag Lem <resid(a)nimrod.no>
*
@@ -24,19 +24,6 @@
#include "WaveformGenerator.h"
-/*
- * This fixes tests
- * SID/wb_testsuite/noise_writeback_check_8_to_C_old
- * SID/wb_testsuite/noise_writeback_check_9_to_C_old
- * SID/wb_testsuite/noise_writeback_check_A_to_C_old
- * SID/wb_testsuite/noise_writeback_check_C_to_C_old
- *
- * but breaks SID/wf12nsr/wf12nsr
- *
- * needs more digging...
- */
-//#define NO_WB_NOI_PUL
-
namespace reSIDfp
{
@@ -120,16 +107,134 @@
* -----+-------+--------------+--------------
* phi1 | 1 | X --> X | A --> A <- shift phase 2
* phi2 | 1 | X <-> X | A <-> A
+ *
+ *
+ * Normal cycles
+ * -------------
+ * Normally, when noise is selected along with another waveform,
+ * c1 and c2 are closed and the output bits pull down the corresponding
+ * shift register bits.
+ *
+ * noi_out_x noi_out_x+1
+ * ^ ^
+ * | |
+ * +-------------+ +-------------+
+ * | | | |
+ * +---o<|---+ | +---o<|---+ |
+ * | | | | | |
+ * c2 | c1 | | c2 | c1 | |
+ * | | | | | |
+ * >---/---+---|>o---+ +---/---+---|>o---+ +---/--->
+ * LC LC LC
+ *
+ *
+ * Shift phase 1
+ * -------------
+ * During shift phase 1 c1 and c2 are open, the SR bits are floating
+ * and will be driven by the output of combined waveforms,
+ * or slowly turn high.
+ *
+ * noi_out_x noi_out_x+1
+ * ^ ^
+ * | |
+ * +-------------+ +-------------+
+ * | | | |
+ * +---o<|---+ | +---o<|---+ |
+ * | | | | | |
+ * c2 / c1 / | c2 / c1 / |
+ * | | | | | |
+ * >-------+---|>o---+ +-------+---|>o---+ +------->
+ * LC LC LC
+ *
+ *
+ * Shift phase 2 (phi1)
+ * --------------------
+ * During the first half cycle of shift phase 2 c1 is closed
+ * so the value from of noi_out_x-1 enters the bit.
+ *
+ * noi_out_x noi_out_x+1
+ * ^ ^
+ * | |
+ * +-------------+ +-------------+
+ * | | | |
+ * +---o<|---+ | +---o<|---+ |
+ * | | | | | |
+ * c2 / c1 | | c2 / c1 | |
+ * | | | | | |
+ * >---/---+---|>o---+ +---/---+---|>o---+ +---/--->
+ * LC LC LC
+ *
+ *
+ * Shift phase 2 (phi2)
+ * --------------------
+ * On the second half of shift phase 2 c2 closes and
+ * we're back to normal cycles.
*/
-void WaveformGenerator::clock_shift_register(unsigned int bit0)
+
+inline bool do_writeback(unsigned int waveform_old, unsigned int waveform_new, bool is6581)
{
- shift_register = (shift_register >> 1) | bit0;
+ // no writeback without combined waveforms
- // New noise waveform output.
- set_noise_output();
+ if (waveform_old <= 8)
+ // fixes SID/noisewriteback/noise_writeback_test2-{old,new}
+ return false;
+
+ if (waveform_new < 8)
+ return false;
+
+ if ((waveform_new == 8)
+ // breaks noise_writeback_check_F_to_8_old
+ // but fixes simple and scan
+ && (waveform_old != 0xf))
+ {
+ // fixes
+ // noise_writeback_check_9_to_8_old
+ // noise_writeback_check_A_to_8_old
+ // noise_writeback_check_B_to_8_old
+ // noise_writeback_check_D_to_8_old
+ // noise_writeback_check_E_to_8_old
+ // noise_writeback_check_F_to_8_old
+ // noise_writeback_check_9_to_8_new
+ // noise_writeback_check_A_to_8_new
+ // noise_writeback_check_D_to_8_new
+ // noise_writeback_check_E_to_8_new
+ // noise_writeback_test1-{old,new}
+ return false;
+ }
+
+ // What's happening here?
+ if (is6581 &&
+ ((((waveform_old & 0x3) == 0x1) && ((waveform_new & 0x3) == 0x2))
+ || (((waveform_old & 0x3) == 0x2) && ((waveform_new & 0x3) == 0x1))))
+ {
+ // fixes
+ // noise_writeback_check_9_to_A_old
+ // noise_writeback_check_9_to_E_old
+ // noise_writeback_check_A_to_9_old
+ // noise_writeback_check_A_to_D_old
+ // noise_writeback_check_D_to_A_old
+ // noise_writeback_check_E_to_9_old
+ return false;
+ }
+ if (waveform_old == 0xc)
+ {
+ // fixes
+ // noise_writeback_check_C_to_A_new
+ return false;
+ }
+ if (waveform_new == 0xc)
+ {
+ // fixes
+ // noise_writeback_check_9_to_C_old
+ // noise_writeback_check_A_to_C_old
+ return false;
+ }
+
+ // ok do the writeback
+ return true;
}
-unsigned int WaveformGenerator::get_noise_writeback()
+inline unsigned int get_noise_writeback(unsigned int waveform_output)
{
return
((waveform_output & (1u << 11)) >> 9) | // Bit 11 -> bit 20
@@ -142,24 +247,65 @@
((waveform_output & (1u << 4)) << 18); // Bit 4 -> bit 0
}
-void WaveformGenerator::write_shift_register()
+/*
+ * Perform the actual shifting, moving the latched value into following bits.
+ * The XORing for bit0 is done in this cycle using the test bit latched during
+ * the previous phi2 cycle.
+ */
+void WaveformGenerator::shift_phase2(unsigned int waveform_old, unsigned int waveform_new)
{
- if (unlikely(waveform > 0x8) && likely(!test) && likely(shift_pipeline != 1))
+ if (do_writeback(waveform_old, waveform_new, is6581))
{
- // Write changes to the shift register output caused by combined waveforms
- // back into the shift register. This happens only when the register is clocked
- // (see $D1+$81_wave_test [1]) or when the test bit is falling.
- // A bit once set to zero cannot be changed, hence the and'ing.
- //
- // [1] ftp://ftp.untergrund.net/users/nata/sid_test/$D1+$81_wave_test.7z
+ // if noise is combined with another waveform the output drives the SR bits
+ shift_latch = (shift_register & shift_mask) | get_noise_writeback(waveform_output);
+ }
-#ifdef NO_WB_NOI_PUL
+ // bit0 = (bit22 | test | reset) ^ bit17 = 1 ^ bit17 = ~bit17
+ const unsigned int bit22 = ((test_or_reset ? 1 : 0) | shift_latch) << 22;
+ const unsigned int bit0 = (bit22 ^ (shift_latch << 17)) & (1 << 22);
+
+ shift_register = (shift_latch >> 1) | bit0;
+#ifdef TRACE
+ std::cout << std::hex << shift_latch << " -> " << shift_register << std::endl;
+#endif
+ set_noise_output();
+}
+
+void WaveformGenerator::write_shift_register()
+{
+ if (unlikely(waveform > 0x8))
+ {
+#if 0
+ // FIXME this breaks SID/wf12nsr/wf12nsr
if (waveform == 0xc)
+ // fixes
+ // noise_writeback_check_8_to_C_old
+ // noise_writeback_check_9_to_C_old
+ // noise_writeback_check_A_to_C_old
+ // noise_writeback_check_C_to_C_old
return;
#endif
- shift_register &= shift_mask | get_noise_writeback();
- noise_output &= waveform_output;
+ // Write changes to the shift register output caused by combined waveforms
+ // back into the shift register.
+ if (likely(shift_pipeline != 1) && !test)
+ {
+#ifdef TRACE
+ std::cout << "write shift_register" << std::endl;
+#endif
+ // the output pulls down the SR bits
+ shift_register = shift_register & (shift_mask | get_noise_writeback(waveform_output));
+ noise_output &= waveform_output;
+ }
+ else
+ {
+#ifdef TRACE
+ std::cout << "write shift_latch" << std::endl;
+#endif
+ // shift phase 1: the output drives the SR bits
+ noise_output = waveform_output;
+ }
+
set_no_noise_or_noise_output();
}
}
@@ -200,26 +346,6 @@
}
}
-bool do_pre_writeback(unsigned int waveform_prev, unsigned int waveform, bool is6581)
-{
- // no writeback without combined waveforms
- if (waveform <= 8)
- return false;
- // What's happening here?
- if (is6581 &&
- ((((waveform_prev & 0x3) == 0x1) && ((waveform & 0x3) == 0x2))
- || (((waveform_prev & 0x3) == 0x2) && ((waveform & 0x3) == 0x1))))
- return false;
- if (waveform_prev == 0xc)
- return false;
-#ifdef NO_WB_NOI_PUL
- if (waveform == 0xc)
- return false;
-#endif
- // ok do the writeback
- return true;
-}
-
void WaveformGenerator::set_no_noise_or_noise_output()
{
no_noise_or_noise_output = no_noise | noise_output;
@@ -290,6 +416,12 @@
// Flush shift pipeline.
shift_pipeline = 0;
+ // Latch the shift register value.
+ shift_latch = shift_register;
+#ifdef TRACE
+ std::cout << "shift phase 1 (test)" << std::endl;
+#endif
+
// Set reset time for shift register.
shift_register_reset = is6581 ? SHIFT_REGISTER_RESET_6581R3 : SHIFT_REGISTER_RESET_8580R5;
}
@@ -297,17 +429,7 @@
{
// When the test bit is falling, the second phase of the shift is
// completed by enabling SRAM write.
-
- // During first phase of the shift the bits are interconnected
- // and the output of each bit is loaded into the following.
- // The output may overwrite the latched value.
- if (do_pre_writeback(waveform_prev, waveform, is6581))
- {
- shift_register = (shift_register & shift_mask) | get_noise_writeback();
- }
-
- // bit0 = (bit22 | test) ^ bit17 = 1 ^ bit17 = ~bit17
- clock_shift_register((~shift_register << 17) & (1 << 22));
+ shift_phase2(waveform_prev, waveform);
}
}
}
@@ -355,7 +477,9 @@
// when reset is released the shift register is clocked once
// so the lower bit is zeroed out
// bit0 = (bit22 | test) ^ bit17 = 1 ^ 1 = 0
- clock_shift_register(0);
+ test_or_reset = true;
+ shift_latch = shift_register;
+ shift_phase2(0, 0);
shift_pipeline = 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libsidplayfp-2.5.0/src/builders/residfp-builder/residfp/WaveformGenerator.h new/libsidplayfp-2.6.0/src/builders/residfp-builder/residfp/WaveformGenerator.h
--- old/libsidplayfp-2.5.0/src/builders/residfp-builder/residfp/WaveformGenerator.h 2023-06-02 14:55:01.000000000 +0200
+++ new/libsidplayfp-2.6.0/src/builders/residfp-builder/residfp/WaveformGenerator.h 2024-01-01 08:59:03.000000000 +0100
@@ -1,7 +1,7 @@
/*
* This file is part of libsidplayfp, a SID player engine.
*
- * Copyright 2011-2022 Leandro Nini <drfiemost(a)users.sourceforge.net>
+ * Copyright 2011-2023 Leandro Nini <drfiemost(a)users.sourceforge.net>
* Copyright 2007-2010 Antti Lankila
* Copyright 2004,2010 Dag Lem <resid(a)nimrod.no>
*
@@ -28,6 +28,13 @@
#include "sidcxx11.h"
+// print SR debugging info
+//#define TRACE 1
+
+#ifdef TRACE
+# include <iostream>
+#endif
+
namespace reSIDfp
{
@@ -97,6 +104,9 @@
unsigned int shift_register;
+ /// Shift register is latched when transitioning to shift phase 1.
+ unsigned int shift_latch;
+
/// Emulation of pipeline causing bit 19 to clock the shift register.
int shift_pipeline;
@@ -127,7 +137,7 @@
/// Remaining time to fully reset shift register.
unsigned int shift_register_reset;
- // The wave signal TTL when no waveform is selected
+ // The wave signal TTL when no waveform is selected.
unsigned int floating_output_ttl;
/// The control register bits. Gate is handled by EnvelopeGenerator.
@@ -136,15 +146,16 @@
bool sync;
//@}
+ /// Test bit is latched at phi2 for the noise XOR.
+ bool test_or_reset;
+
/// Tell whether the accumulator MSB was set high on this cycle.
bool msb_rising;
bool is6581; //-V730_NOINIT this is initialized in the SID constructor
private:
- void clock_shift_register(unsigned int bit0);
-
- unsigned int get_noise_writeback();
+ void shift_phase2(unsigned int waveform_old, unsigned int waveform_new);
void write_shift_register();
@@ -300,12 +311,19 @@
{
if (unlikely(shift_register_reset != 0) && unlikely(--shift_register_reset == 0))
{
+#ifdef TRACE
+ std::cout << "shiftregBitfade" << std::endl;
+#endif
shiftregBitfade();
+ shift_latch = shift_register;
// New noise waveform output.
set_noise_output();
}
+ // Latch the test bit value for shift phase 2.
+ test_or_reset = true;
+
// The test bit sets pulse high.
pulse_output = 0xfff;
}
@@ -328,10 +346,25 @@
// Pipeline: Detect rising bit, shift phase 1, shift phase 2.
shift_pipeline = 2;
}
- else if (unlikely(shift_pipeline != 0) && --shift_pipeline == 0)
+ else if (unlikely(shift_pipeline != 0))
{
- // bit0 = (bit22 | test) ^ bit17
- clock_shift_register(((shift_register << 22) ^ (shift_register << 17)) & (1u << 22));
+ switch (--shift_pipeline)
+ {
+ case 0:
+#ifdef TRACE
+ std::cout << "shift phase 2" << std::endl;
+#endif
+ shift_phase2(waveform, waveform);
+ break;
+ case 1:
+#ifdef TRACE
+ std::cout << "shift phase 1" << std::endl;
+#endif
+ // Start shift phase 1.
+ test_or_reset = false;
+ shift_latch = shift_register;
+ break;
+ }
}
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libsidplayfp-2.5.0/src/builders/residfp-builder/residfp/resample/SincResampler.cpp new/libsidplayfp-2.6.0/src/builders/residfp-builder/residfp/resample/SincResampler.cpp
--- old/libsidplayfp-2.5.0/src/builders/residfp-builder/residfp/resample/SincResampler.cpp 2023-06-02 14:55:01.000000000 +0200
+++ new/libsidplayfp-2.6.0/src/builders/residfp-builder/residfp/resample/SincResampler.cpp 2024-01-01 08:59:03.000000000 +0100
@@ -30,6 +30,8 @@
#include "siddefs-fp.h"
+#include "sidcxx11.h"
+
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
@@ -41,6 +43,9 @@
#elif defined(HAVE_ARM_NEON_H)
# include <arm_neon.h>
#endif
+#ifdef HAVE_CXX11
+# include <mutex>
+#endif
namespace reSIDfp
{
@@ -49,6 +54,9 @@
/// Cache for the expensive FIR table computation results.
fir_cache_t FIR_CACHE;
+#ifdef HAVE_CXX11
+std::mutex FIR_CACHE_Lock;
+#endif
/// Maximum error acceptable in I0 is 1e-6, or ~96 dB.
const double I0E = 1e-6;
@@ -119,7 +127,7 @@
for (int i = 0; i < n; i++)
{
const __m128i tmp = _mm_madd_epi16(*(__m128i*)a, *(__m128i*)b);
- acc = _mm_add_epi16(acc, tmp);
+ acc = _mm_add_epi32(acc, tmp);
a += 8;
b += 8;
}
@@ -313,6 +321,11 @@
std::ostringstream o;
o << firN << "," << firRES << "," << cyclesPerSampleD;
const std::string firKey = o.str();
+
+#ifdef HAVE_CXX11
+ std::lock_guard<std::mutex> lock(FIR_CACHE_Lock);
+#endif
+
fir_cache_t::iterator lb = FIR_CACHE.lower_bound(firKey);
// The FIR computation is expensive and we set sampling parameters often, but
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libsidplayfp-2.5.0/src/builders/residfp-builder/residfp-emu.cpp new/libsidplayfp-2.6.0/src/builders/residfp-builder/residfp-emu.cpp
--- old/libsidplayfp-2.5.0/src/builders/residfp-builder/residfp-emu.cpp 2023-06-02 14:55:01.000000000 +0200
+++ new/libsidplayfp-2.6.0/src/builders/residfp-builder/residfp-emu.cpp 2024-01-01 08:59:03.000000000 +0100
@@ -38,22 +38,13 @@
const char* ReSIDfp::getCredits()
{
- static std::string credits;
-
- if (credits.empty())
- {
- // Setup credits
- std::ostringstream ss;
- ss << "ReSIDfp V" << VERSION << " Engine:\n";
- ss << "\t(C) 1999-2002 Simon White\n";
- ss << "MOS6581 (SID) Emulation (ReSIDfp V" << residfp_version_string << "):\n";
- ss << "\t(C) 1999-2002 Dag Lem\n";
- ss << "\t(C) 2005-2011 Antti S. Lankila\n";
- ss << "\t(C) 2010-2015 Leandro Nini\n";
- credits = ss.str();
- }
-
- return credits.c_str();
+ return
+ "ReSIDfp V" VERSION " Engine:\n"
+ "\t(C) 1999-2002 Simon White\n"
+ "MOS6581/CSG8580 (SID) Emulation:\n"
+ "\t(C) 1999-2002 Dag Lem\n"
+ "\t(C) 2005-2011 Antti S. Lankila\n"
+ "\t(C) 2010-2023 Leandro Nini\n";
}
ReSIDfp::ReSIDfp(sidbuilder *builder) :
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libsidplayfp-2.5.0/test/testlist new/libsidplayfp-2.6.0/test/testlist
--- old/libsidplayfp-2.5.0/test/testlist 2023-06-02 14:55:01.000000000 +0200
+++ new/libsidplayfp-2.6.0/test/testlist 2024-01-01 08:59:03.000000000 +0100
@@ -757,6 +757,8 @@
SID/writedelay/writedelay --sid old
SID/wf12nsr/wf12nsr --sid old
SID/wf12nsr/wf12nsr-8580 --sid new
+SID/noiselfsrinit/simple --sid old
+SID/noiselfsrinit/scan --sid old
### VICII ###
VICII/colorram/test
VICII/split-tests/bascan/bascan
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libsidplayfp-2.5.0/tests/TestWaveformGenerator.cpp new/libsidplayfp-2.6.0/tests/TestWaveformGenerator.cpp
--- old/libsidplayfp-2.5.0/tests/TestWaveformGenerator.cpp 2023-06-02 14:55:01.000000000 +0200
+++ new/libsidplayfp-2.6.0/tests/TestWaveformGenerator.cpp 2024-01-01 08:59:03.000000000 +0100
@@ -1,7 +1,7 @@
/*
* This file is part of libsidplayfp, a SID player engine.
*
- * Copyright (C) 2014-2022 Leandro Nini
+ * Copyright (C) 2014-2023 Leandro Nini
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -52,7 +52,11 @@
generator.reset();
generator.shift_register = 0x35555e;
- generator.clock_shift_register(0);
+ // shift phase 1
+ generator.test_or_reset = false;
+ generator.shift_latch = generator.shift_register;
+ // shift phase 2
+ generator.shift_phase2(0, 0);
CHECK_EQUAL(0x9e0, generator.noise_output);
}
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package libopenshot-audio for openSUSE:Factory checked in at 2024-01-03 12:26:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libopenshot-audio (Old)
and /work/SRC/openSUSE:Factory/.libopenshot-audio.new.28375 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libopenshot-audio"
Wed Jan 3 12:26:46 2024 rev:11 rq:1135843 version:0.3.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/libopenshot-audio/libopenshot-audio.changes 2023-04-11 13:51:47.639581331 +0200
+++ /work/SRC/openSUSE:Factory/.libopenshot-audio.new.28375/libopenshot-audio.changes 2024-01-03 12:26:48.875480685 +0100
@@ -1,0 +2,7 @@
+Thu Dec 28 17:07:49 UTC 2023 - dmueller(a)suse.com
+
+- Update to version 0.3.2:
+ * Bumping version to 0.3.2 (SO remains 9 - not changed)
+ * Updating github CI builders to no longer use Ubuntu 18.04, and add 22.04
+
+-------------------------------------------------------------------
Old:
----
libopenshot-audio-0.3.1.obscpio
libopenshot-audio-0.3.1.tar.xz
New:
----
libopenshot-audio-0.3.2.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libopenshot-audio.spec ++++++
--- /var/tmp/diff_new_pack.sm3iQx/_old 2024-01-03 12:26:49.823515305 +0100
+++ /var/tmp/diff_new_pack.sm3iQx/_new 2024-01-03 12:26:49.823515305 +0100
@@ -19,7 +19,7 @@
%define sover 9
Name: libopenshot-audio
-Version: 0.3.1
+Version: 0.3.2
Release: 0
Summary: Audio library for the OpenShot video editor
License: GPL-3.0-or-later
++++++ _service ++++++
--- /var/tmp/diff_new_pack.sm3iQx/_old 2024-01-03 12:26:49.851516327 +0100
+++ /var/tmp/diff_new_pack.sm3iQx/_new 2024-01-03 12:26:49.851516327 +0100
@@ -1,13 +1,13 @@
<services>
- <service name="obs_scm" mode="disabled">
+ <service name="obs_scm" mode="manual">
<param name="url">https://github.com/OpenShot/libopenshot-audio.git</param>
<param name="scm">git</param>
- <param name="revision">v0.3.1</param>
+ <param name="revision">v0.3.2</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="versionrewrite-pattern">v(.*)</param>
<param name="changesgenerate">enable</param>
</service>
- <service name="set_version" mode="disabled"/>
+ <service name="set_version" mode="manual"/>
<service name="tar" mode="buildtime" />
<service name="recompress" mode="buildtime">
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.sm3iQx/_old 2024-01-03 12:26:49.871517058 +0100
+++ /var/tmp/diff_new_pack.sm3iQx/_new 2024-01-03 12:26:49.871517058 +0100
@@ -1,5 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/OpenShot/libopenshot-audio.git</param>
- <param name="changesrevision">8eb23127f262a4cae4f1ef16726bfe0f6e6b6969</param></service></servicedata>
+ <param name="changesrevision">e47da46fea0781941aacf86ece2bbe976f8a030a</param></service></servicedata>
+(No newline at EOF)
++++++ libopenshot-audio-0.3.1.obscpio -> libopenshot-audio-0.3.2.obscpio ++++++
/work/SRC/openSUSE:Factory/libopenshot-audio/libopenshot-audio-0.3.1.obscpio /work/SRC/openSUSE:Factory/.libopenshot-audio.new.28375/libopenshot-audio-0.3.2.obscpio differ: char 49, line 1
++++++ libopenshot-audio.obsinfo ++++++
--- /var/tmp/diff_new_pack.sm3iQx/_old 2024-01-03 12:26:49.911518518 +0100
+++ /var/tmp/diff_new_pack.sm3iQx/_new 2024-01-03 12:26:49.911518518 +0100
@@ -1,5 +1,5 @@
name: libopenshot-audio
-version: 0.3.1
-mtime: 1679439378
-commit: 8eb23127f262a4cae4f1ef16726bfe0f6e6b6969
+version: 0.3.2
+mtime: 1681736442
+commit: e47da46fea0781941aacf86ece2bbe976f8a030a
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package aravis for openSUSE:Factory checked in at 2024-01-03 12:26:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/aravis (Old)
and /work/SRC/openSUSE:Factory/.aravis.new.28375 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "aravis"
Wed Jan 3 12:26:43 2024 rev:5 rq:1135840 version:0.8.30
Changes:
--------
--- /work/SRC/openSUSE:Factory/aravis/aravis.changes 2023-07-31 15:25:05.375573689 +0200
+++ /work/SRC/openSUSE:Factory/.aravis.new.28375/aravis.changes 2024-01-03 12:26:46.043377264 +0100
@@ -1,0 +2,21 @@
+Tue Dec 26 12:28:40 UTC 2023 - Matwey Kornilov <matwey.kornilov(a)gmail.com>
+
+- Update to 0.8.30:
+ * gv: add EVK Helios and Automation Technology C6 devices to the
+ legacy mode list
+ * gv: don't ignore POINTTOPOINT interfaces, allows for direct
+ connection to devices through VPNs
+- Changes for 0.8.29:
+ * usb3vision: fix callbacks triggering in async mode
+ * usb3vision: fix underrun counting
+- Changes for 0.8.28:
+ * usb3vision: make async libusb default
+ * usb3vision: improve CPU use when no buffer is available for the
+ stream thread
+ * usb3vision: don't wait forever for USB transfer completion
+ * usb3vision: enable stream after the receiving stream thread is
+ started
+ * viewer: avoid buffer exhaustion if GStreamer pipeline is late
+ * build: fix clang 32 bits compilation
+
+-------------------------------------------------------------------
@@ -4 +25 @@
-- Update to 0.8.26:
+- Update to 0.8.27:
Old:
----
aravis-0.8.27.tar.xz
New:
----
aravis-0.8.30.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ aravis.spec ++++++
--- /var/tmp/diff_new_pack.PwrHrG/_old 2024-01-03 12:26:46.727402242 +0100
+++ /var/tmp/diff_new_pack.PwrHrG/_new 2024-01-03 12:26:46.727402242 +0100
@@ -24,7 +24,7 @@
%define devname lib%{name}-%{sorel}-devel
%define typelibname typelib-1_0-Aravis-%{api}
Name: aravis
-Version: 0.8.27
+Version: 0.8.30
Release: 0
Summary: Glib/gobject based library implementing a Genicam interface
License: LGPL-2.1-or-later
@@ -110,7 +110,7 @@
%install
%meson_install
-%suse_update_desktop_file -r arv-viewer-%{api} AudioVideo AudioVideoEditing
+%suse_update_desktop_file -r org.aravis.viewer-%{api} AudioVideo AudioVideoEditing
%find_lang %{name}-%{api}
@@ -134,8 +134,8 @@
%{_mandir}/man1/arv-viewer-*
%{_datadir}/icons/hicolor/*/apps/aravis*
%dir %{_datadir}/metainfo
-%{_datadir}/metainfo/arv-viewer-%{api}.appdata.xml
-%{_datadir}/applications/arv-viewer-%{api}.desktop
+%{_datadir}/metainfo/org.aravis.viewer-%{api}.appdata.xml
+%{_datadir}/applications/org.aravis.viewer-%{api}.desktop
%files -n %{libname}
%license COPYING
++++++ aravis-0.8.27.tar.xz -> aravis-0.8.30.tar.xz ++++++
++++ 1701 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package cozette-fonts for openSUSE:Factory checked in at 2024-01-03 12:26:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cozette-fonts (Old)
and /work/SRC/openSUSE:Factory/.cozette-fonts.new.28375 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cozette-fonts"
Wed Jan 3 12:26:41 2024 rev:8 rq:1136208 version:1.23.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/cozette-fonts/cozette-fonts.changes 2023-07-24 18:26:02.098174277 +0200
+++ /work/SRC/openSUSE:Factory/.cozette-fonts.new.28375/cozette-fonts.changes 2024-01-03 12:26:43.555286404 +0100
@@ -1,0 +2,17 @@
+Wed Dec 20 13:44:44 UTC 2023 - Soc Virnyl Estela <uncomfy+openbuildservice(a)uncomfyhalomacro.pl>
+
+- Remove _service file
+- Remove otf font
+- Add README.md and CHANGELOG.md as sources.
+- Update to version 1.23.1:
+ * v.1.23.1 Emoji bugfix, new images
+ * v.1.23.0: the Uiua update.
+ * v.1.22.2 More math symbols
+ * docs: Add FreeBSD pkg
+ * v.1.22.1 Caron fixes
+ * v.1.22.0 the zodiac update
+ * v.1.21.0-woff - Fix OS/2 tables, add woff/woff2 export
+ * v.1.21.0 The BQN update
+ * Added BQN glyphs + some miscellaneous glyphs
+
+-------------------------------------------------------------------
Old:
----
Cozette-1.21.0.obscpio
Cozette-1.21.0.tar.xz
CozetteVector.otf
_service
New:
----
CHANGELOG.md
CozetteFonts-v-1-23-1.zip
README.md
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cozette-fonts.spec ++++++
--- /var/tmp/diff_new_pack.YmVGdE/_old 2024-01-03 12:26:44.315314159 +0100
+++ /var/tmp/diff_new_pack.YmVGdE/_new 2024-01-03 12:26:44.315314159 +0100
@@ -18,16 +18,18 @@
%define fontname Cozette
Name: cozette-fonts
-Version: 1.21.0
+Version: 1.23.1
Release: 0
Summary: A bitmap programming font
License: MIT
Group: System/X11/Fonts
URL: https://github.com/slavfox/Cozette
-Source0: Cozette-%{version}.tar.xz
-Source1: https://github.com/slavfox/Cozette/releases/download/v.%{version}/CozetteVe…
+Source0: https://github.com/slavfox/Cozette/releases/download/v.%{version}/CozetteFo…
+Source1: https://raw.githubusercontent.com/slavfox/Cozette/v.%{version}/README.md
+Source2: https://raw.githubusercontent.com/slavfox/Cozette/v.%{version}/CHANGELOG.md
BuildRequires: %{suseconfig_fonts_prereq}
BuildRequires: fontpackages-devel
+BuildRequires: unzip
BuildArch: noarch
%reconfigure_fonts_prereq
@@ -36,19 +38,20 @@
that might encounter in the terminal.
%prep
-%setup -q -n %{fontname}-%{version}
+%setup -q -n %{fontname}Fonts
+cp %{SOURCE1} .
+cp %{SOURCE2} .
%build
%install
mkdir -p %{buildroot}%{_ttfontsdir}
-install -m 0644 %{SOURCE1} %{buildroot}%{_ttfontsdir}/
+find . -name "*.ttf" -execdir install -m 0644 {} %{buildroot}%{_ttfontsdir}/ \;
%reconfigure_fonts_scriptlets
%files
%{_ttfontsdir}
-
%license LICENSE
-%doc CHANGELOG.md README.md
+%doc README.md CHANGELOG.md
++++++ CHANGELOG.md ++++++
++++ 2489 lines (skipped)
++++++ README.md ++++++
# Cozette
[
[

[
A bitmap programming font optimized for coziness.
# Contents
- [About Cozette](#about-cozette)
- [Installation](#installation)
- [Linux](#linux)
- [Mac](#mac)
- [Windows](#windows)
- [Notes on specific applications](#notes-on-specific-applications)
- [Dmenu](#dmenu)
- [VSCode, general GUI applications](#vscode-general-gui-applications)
- [Kitty](#kitty)
- [Variants](#variants)
- [Roadmap](#roadmap)
- [Recommended alternatives](#recommended-alternatives)
- [Character map](#character-map)
- [Building](#building)
- [Contributors](#contributors)
- [License](#license--acknowledgements)
# About Cozette
Cozette is a 6x13px (bounding box; average 5px character width, 3px
descent, 10px ascent, 8px cap height) bitmap font based on [Dina], which
itself is based on [Proggy].
It's also heavily inspired by [Creep]. I absolutely adore Creep, and was
using it up until I got a higher-DPI screen for which it was slightly too
small. That prompted me to make the bitmap font I always wished existed:
Cozette; a small-but-not-tiny bitmap font with great coverage of all the
glyphs _you_ might encounter in the terminal:

I'm intentionally putting the emphasis on "you" - although Cozette already
has all the glyphs I've seen in my CLI tools so far, _you_ might find it's
missing a glyph you wish it had. If that's the case, _please [file an issue]_!
It's an important goal for Cozette to be a useful bitmap alternative to
[Nerd Fonts].
A nicer character map that includes the codepoints can be found at
[the bottom of this README]!
# Installation
### [You can get Cozette over at the Releases tab]!
## Variants and Sizes
Cozette is distributed in three main variants: normal and hi-dpi (upscaled 2x) bitmaps
(`.bdf`, `.otb`, `.psf`, and `.fnt`), and vectors (`.ttf`).
Font scaling varies wildly from system to system, and sometimes even from
program to program and font format to format. On my system (Linux), `cozette.otb`
looks right at 13pts; `cozette_hidpi.otb` looks right at 26pts and downscales
quite elegantly to 10pts; `CozetteVector` doesn't look right at any size (technically,
it will look right specifically at 9.4pts on a 100dpi screen on Linux, but pixel-perfect
bitmap fonts are a massive headache, treated differently by every OS, that I'm not quite sure how to solve)
Bitmap fonts are, effectively, just that - bitmaps. They scale terribly, but
look nice and sharp (and pixel-perfect) at one specific point
size. Vector fonts scale well, but in this case, might look ugly at
smaller point sizes because of antialiasing issues and the like.
<h3>NOTE:</h3>
The vector formats (`CozetteVector`) are provided as a compatibility feature.
Rendering of vectorized bitmap-like fonts is <em>terrible</em> on virtually all operating systems.
If Cozette looks awful on your system, you probably have a vector version.
<em>Please</em> use the bitmap formats (`.otb`) if you can.
Issues with vector formats will almost certainly <em>not</em> be fixed or
addressed; Cozette is a bitmap font first and foremost, and building a
bitmap font that builds from a single source and looks good both in its intended,
bitmap font as well as as the auto-vectorized format, on every OS, seems to be an unsolved problem.
### Linux
The preferred format is `.otb` (for bitmaps) or `.ttf`
(for CozetteVector). To install the font, just throw it in your fonts directory
(you probably want to follow your distro's instructions). On Ubuntu you might need to
[specifically enable bitmap fonts].
**If you're on Arch**, [ifreund] made [an AUR package] for the .otb! Install it
using your AUR helper of choice:
```
$ yay -S cozette-otb
```
Or, if you're not using an AUR helper:
```
$ git clone https://aur.archlinux.org/cozette-otb.git
$ cd cozette-otb
$ makepkg -si
```
### Mac
Download the `.dfont` and install it with `Font Book .app`. Both the bitmap
`Cozette.dfont` and the vector `CozetteVector.dfont` should work.
### Windows
Grab `CozetteVector.ttf`. If you want to get the bitmap versions to work,
[follow the instructions from here].
### FreeBSD
[laxul] made a [port] for the `.otb`!
* pkg: `pkg install cozette`
* ports: `cd /usr/ports/x11-fonts/cozette; make install clean`
### Other BSD / Solaris / Haiku / Other
You know what you're doing.
### Notes on specific applications
#### Dmenu
`dmenu` (and reportedly some other applications, like `urxvt`) seems slightly
fucky when it comes to dealing with font spacing. I cannot tell if this is an
issue with Cozette specifically or with the font rendering in those
applications, but they seem to pull the font spacing from your system's default
monospace font for whatever reason. If setting Cozette as your system default
is not an option (I don't recommend it, a lot of applications have problems
with bitmap fonts), try using `Cozette-<size>` as the font name, ie.
`Cozette-8`.
#### VSCode, general GUI applications
VSCode and a lot of other GUI applications don't support bitmap fonts, so you
will want to use CozetteVector there. In applications that do support bitmap
fonts, you will want to use the normal, bitmap Cozette (unless it's too
small for you, in which case, CozetteVector scales better).
#### Kitty
**[4e554c4c](https://github.com/4e554c4c) made [an AUR package for `kitty` patched to support bitmap fonts](https://aur.archlinux.org/packages/kitty-bitmap/).**
> `if you like bitmap fonts, kitty is not for you.`
**According to its author, `kitty` [doesn't, and never will, support bitmap fonts](https://github.com/kovidgoyal/kitty/issues/97#issuecomment-373970232….
If you _really_ want to get Cozette working, you can try the [AUR package mentioned above](https://aur.archlinux.org/packages/kitty-bitmap/), or apply [the patch there](https://aur.archlinux.org/cgit/aur.git/tree/Allow-bitmap-fonts.patch… yourself.
If that doesn't work, you can try the trick from [here](https://github.com/kovidgoyal/kitty/issues/97#issuecomment-579094656); if you
explicitly set Cozette(Vector)'s `spacing` to 100, and `scalable` to `true` in `fontconfig`, `kitty` _should_ accept it.
You can also make Cozette work flawlessly by uninstalling `kitty` and using a terminal emulator for which _not rendering fonts_ isn't a design principle - I cannot recommend [alacritty](https://github.com/alacritty/alacritty/) enough. it's excellent, has worked flawlessly for me for quite some time, and both configuring and getting bitmap fonts to work in it is a breeze.
(The support was discussed in [slavfox/Cozette#18](https://github.com/slavfox/Cozette/issues/18). Many thanks to all the participants there, especially to to Luflosi, who brought up flipping the `allow_bitmapped_fonts` flag in [their fork](https://github.com/Luflosi/kitty/commit/e645e0b5ed084c2c57ecfb8acafc0…, and to [4e554c4c](https://github.com/4e554c4c), who made the AUR package.)
# Roadmap
Check the [CHANGELOG] for the latest news!
Here's where Cozette is so far, in the rough order the features are going to be
implemented:
- [x] ASCII
- [x] Powerline
- [x] Build scripts to handle exporting
- [x] Box-drawing (mostly)
- [x] Braille
- [x] Cyrillic!
- [x] APL Glyphs (based on the list from [APL386](https://abrudz.github.io/APL386/))!
- [x] [Uiua](https://www.uiua.org/) glyphs!
- [x] [BQN](https://mlochbaum.github.io/BQN/fonts.html) Glyphs!
- [ ] Nerdfonts:
- [x] nf-pom-\*
- [x] nf-seti-\*
- [ ] nf-dev-\* (partial)
- [ ] nf-weather-\*
- [x] Glyph map generation (so I don't have to keep `characters.png` up to
date)
- [x] "True" TTF version
- [x] Windows support
- [x] Full [vim-airline] support!
- [x] Full [ranger_devicons] support!
- [x] [starship] supported out of the box!
- [x] Full [powerlevel10k] support! (if it doesn't work, try setting
`POWERLEVEL9K_MODE` to `nerdfont-complete`)
- [x] All glyphs used by [maturin](https://github.com/PyO3/maturin) and
many other CLI tools!
- [x] Charmap including the code points (to make it easier for users to
report issues/request additions)
- [x] Codepoints above U+FFFF in vector fonts
- [x] Upscaled hi-dpi variant
# Recommended alternatives
Cozette is, intentionally, a very small font. If neither the base nor the
[HiDpi](#variants) version fit your needs, you might want to look at some
other bitmap fonts with extra glyphs. A couple of my favorites are
[Tamzen](https://github.com/sunaku/tamzen-font/)
and [Envypn](https://github.com/Sorixelle/envypn-powerline). You might also
find the [Tecate/bitmap-fonts repo](https://github.com/Tecate/bitmap-fonts)
useful.
# Character map
For easy copy-pasting, the character map is provided in text form in
[img/charmap.txt](./img/charmap.txt). If you just want to see how the glyphs
look in Cozette, here is a screenshot of it:

# Building
If you want to build Cozette yourself, you'll need [FontForge] and Java. Once you
have that, just clone this repo, open `Cozette/Cozette.sfd` in FontForge,
and go to _File → Generate Fonts..._.
To run the build scripts I use to prepare releases, first install Python (at least 3.8)
and [pipenv]. For generating the images, you will also need `xorg-mkfontscale`
and `xterm`.
Then, install the dependencies and run `build.py fonts`:
```console
$ pipenv install
$ pipenv run python build.py fonts
```
Then install the generated fonts, and run
```console
$ pipenv run python build.py images
```
Running
```console
$ pipenv run python build.py changelog
```
will output the changelog between your local version and the last tag.
# Contributors
Massive thanks to [ym1234] for helping me figure out how to make the font tables behave nicely.
Thanks to [autumn], [cpkio], [yoshiyoshyosh], [klinegareth], and [dariof4] for contributing characters!
# License & Acknowledgements
Cozette is licensed [MIT] 💜
Cozette's builds use [bdfscale](https://github.com/philj56/bdfscale) by [philj56](https://github.com/philj56) and
[Bits'N'Picas](https://github.com/kreativekorp/bitsnpicas) by [Kreative Software](https://github.com/kreativekorp).
[dina]: https://www.dcmembers.com/jibsen/download/61/
[proggy]: https://github.com/bluescan/proggyfonts
[creep]: https://github.com/romeovs/creep
[great coverage of all the glyphs i might encounter in the terminal]: #character-map
[file an issue]: https://github.com/slavfox/Cozette/issues/new
[nerd fonts]: https://www.nerdfonts.com/
[the bottom of this readme]: #character-map
[you can get cozette over at the releases tab]: https://github.com/slavfox/Cozette/releases
[ifreund]: https://github.com/ifreund
[an aur package]: https://aur.archlinux.org/packages/cozette-otb/
[specifically enable bitmap fonts]: https://bugs.launchpad.net/ubuntu/+source/fontconfig/+bug/1560114
[follow the instructions from here]: https://wiki.archlinux.org/index.php/installation_guide
[changelog]: ./CHANGELOG.md
[vim-airline]: https://github.com/vim-airline/vim-airline/
[ranger_devicons]: https://github.com/alexanderjeurissen/ranger_devicons
[starship]: https://starship.rs/
[fontforge]: https://fontforge.org/en-US/
[powerlevel10k]: https://github.com/romkatv/powerlevel10k/
[pipenv]: https://github.com/pypa/pipenv
[mit]: ./LICENSE
[ym1234]: https://github.com/ym1234
[autumn]: https://github.com/auctumnus
[cpkio]: https://github.com/cpkio
[yoshiyoshyosh]: https://github.com/yoshiyoshyosh
[klinegareth]: https://github.com/klinegareth
[dariof4]: https://github.com/dariof4
[laxul]: https://github.com/laxul
[port]: https://cgit.freebsd.org/ports/tree/x11-fonts/cozette
1
0