From fbc16dc673fb1ade4d5b79333b2eab630ee51784 Mon Sep 17 00:00:00 2001 From: Persune Date: Fri, 9 Jan 2026 04:47:57 +0800 Subject: [PATCH 1/4] Clarify licenses - Fix `LICENSE.md` links - Add MIT-0 text for NSF driver license --- CMakeLists.txt | 7 +++-- Dn-help | 2 +- LICENSE-MIT-0.txt | 18 +++++++++++++ LICENSE.md | 50 +++++++++++++---------------------- Source/drivers/asm/LICENSE.md | 25 ++++++++++++------ 5 files changed, 60 insertions(+), 42 deletions(-) create mode 100644 LICENSE-MIT-0.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 65b08e6e..c300e99c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -75,10 +75,13 @@ add_custom_command( # update changelog add_custom_command( OUTPUT ${DNHELP_SRC_DIR}/changelog.htm - DEPENDS ${DNHELP_SRC_DIR}/changelog-shell.htm + ${DNHELP_SRC_DIR}/license.htm + DEPENDS ${DNHELP_SRC_DIR}/changelog-template.htm + ${DNHELP_SRC_DIR}/license-template.htm CHANGELOG.md + LICENSE.md WORKING_DIRECTORY ${DNHELP_SRC_DIR} - COMMAND call ${DNHELP_SRC_DIR}/update-changelog-htm.bat + COMMAND call ${DNHELP_SRC_DIR}/update-htm-templates COMMENT "Updating changelog.htm." VERBATIM) diff --git a/Dn-help b/Dn-help index d4ef985d..841456b9 160000 --- a/Dn-help +++ b/Dn-help @@ -1 +1 @@ -Subproject commit d4ef985d9e418ff357404a704e315c69d4db538c +Subproject commit 841456b9e6376e11547355cc1325a8dffe016de9 diff --git a/LICENSE-MIT-0.txt b/LICENSE-MIT-0.txt new file mode 100644 index 00000000..afe849d1 --- /dev/null +++ b/LICENSE-MIT-0.txt @@ -0,0 +1,18 @@ +MIT No Attribution + +Copyright 2020-2026 D.P.C.M. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/LICENSE.md b/LICENSE.md index 67f599f4..49f34b4a 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,12 +1,14 @@ # Licenses +--- + The application is distributed under the [GPLv3+ license](https://www.gnu.org/licenses/gpl-3.0.en.html), or any later version. -```_ +```text Dn-FamiTracker - NES/Famicom sound tracker -Copyright (C) 2020-2025 D.P.C.M. +Copyright (C) 2020-2026 D.P.C.M. FamiTracker Copyright (C) 2005-2020 Jonathan Liss 0CC-FamiTracker Copyright (C) 2014-2018 HertzDevil @@ -27,7 +29,7 @@ along with this program. If not, see https://www.gnu.org/licenses/. ## Tracker source code and libraries The tracker source code is distributed under the -[GPLv3+ license](https://www.gnu.org/licenses/gpl-3.0.en.html), or any later +[GPLv3+ license](https://www.gnu.org/licenses/gpl-3.0.html), or any later version. - FamiTracker @@ -40,50 +42,36 @@ version. - Licensed under [GPLv2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html), or any later version. - - Copyright (C) 2006 Brezza, 2012-2025 Brad Smith - - Used under an [informal license](Source/APU/nsfplay/readme.txt). -- VRC7/OPLL sound emulator from emu2413 v1.5.9 - - Copyright (C) 2001-2019 Mitsutaka Okazaki +- NSFPlay + - Copyright (C) 2006 Brezza, 2012-2026 Brad Smith + - Used under an [informal license](https://github.com/bbbradsmith/nsfplay/blob/master/readme.txt). +- VRC7/OPLL sound emulator from [emu2413](https://github.com/digital-sound-antiques/emu2413) v1.5.9 + - Copyright (C) 2001-2022 Mitsutaka Okazaki - Licensed under the [MIT license](https://mit-license.org/). -- FDS and N163 sound emulator from Mesen - - Copyright (C) 2014-2024 Sour +- FDS and N163 sound emulator from [Mesen](https://github.com/SourMesen/Mesen2) + - Copyright (C) 2014-2025 Sour - Licensed under - [GPLv3](https://www.gnu.org/licenses/old-licenses/gpl-3.0.en.html), or any + [GPLv3](https://www.gnu.org/licenses/gpl-3.0.html), or any later version. -- Blip_buffer 0.4.1 +- [Blip_buffer](https://www.slack.net/~ant/libs/audio.html#Blip_Buffer) 0.4.1 - Copyright (C) 2003-2006 Shay Green - Licensed under [LGPLv2.1](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html) - modified by nyanpasu64 -- Free FFT and convolution (C++) +- [Free FFT and convolution](https://www.nayuki.io/page/free-small-fft-in-multiple-languages) (C++) - Copyright (C) 2017 Project Nayuki - Licensed under the [MIT license](https://mit-license.org/). -- JSON for Modern C++ +- [JSON for Modern C++](https://github.com/nlohmann/json/) - Copyright (C) 2013-2024 Niels Lohmann - Licensed under the [MIT license](https://mit-license.org/). -- libsamplerate +- [libsamplerate](https://github.com/libsndfile/libsamplerate) - Copyright (C) 2012-2016, Erik de Castro Lopo . All rights reserved. - Licensed under the [BSD-2-Clause license](https://www.freebsd.org/copyright/freebsd-license/). -## NSFs, Exported music, modules, etc. - -The licenses mentioned for the NSF driver and the tracker source do not apply to -exported media made with the program that does not contain executable code that -resembles any source file, such as exported `.wav`s, `.txt`s, `.json`s, or `.csv`s. - -[jsr's comment on music created with FT.](http://forums.famitracker.com/viewtopic.php?f=4&t=122&p=741#p741) - -However, NSFs/ROMs contain machine code that more or less corresponds to the NSF -driver source, and thus the software licenses may apply. More details can be -found [in the NSF source's license](./Source/drivers/asm/LICENSE.md). - -This does not apply to exported assembly or binary music data, as they do not -include the NSF driver data. - ## NSF driver source code -Dn-FT NSF driver changes are under GPL v2 due to 0CC-FT. More details can be -found [in the NSF source's license](./Source/drivers/asm/LICENSE.md). +Dn-FT NSF driver modifications are under [MIT-0](LICENSE-MIT-0.txt). More details can be found +[in the NSF driver source's license](https://github.com/Dn-Programming-Core-Management/Dn-FamiTracker/blob/main/Source/drivers/asm/LICENSE.md). diff --git a/Source/drivers/asm/LICENSE.md b/Source/drivers/asm/LICENSE.md index 7d4900d5..dc7aa1b0 100644 --- a/Source/drivers/asm/LICENSE.md +++ b/Source/drivers/asm/LICENSE.md @@ -1,8 +1,14 @@ +```text +Dn-FamiTracker NSF Driver Copyright (C) 2020-2026 D.P.C.M. +0CC-FamiTracker NSF Driver Copyright (C) 2014-2018 HertzDevil +FamiTracker NSF music driver Copyright (C) 2005-2015 Jonathan Liss +``` + The original FT NSF driver's source code is explicitly *not* under the GPL.[^1][^2][^3] It is instead source-available, under no explicit license. Based on its usecase, -and jsr's comments [^4], I presume that distribution and modification is +and jsr's comments [^4], it is presumed that distribution and modification is permitted, and attribution is recommended. [^1]: @@ -10,12 +16,15 @@ permitted, and attribution is recommended. [^3]: [^4]: -0CC-FamiTracker's NSF driver code modifications is licensed under GPL v2, -which may restrict anyone sharing compiled NSFs and binaries without sharing the -assembly source, as they contain machine code that directly correlates to the -NSF driver source. +0CC-FamiTracker's modified NSF driver source comes with a +[GPL v2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html) license +file. Although +[the output of the program is not covered by the GNU GPL](https://www.gnu.org/licenses/gpl-faq.en.html#WhatCaseIsOutputGPL), +the NSF/ROM output might be considered as an executable binary, which in theory +may restrict anyone sharing compiled NSFs and binaries without sharing the +assembly source, according to section 3. -0CC-FT NSF driver modifications are under GPL v2. +Dn-FamiTracker's modifications are under [MIT-0](../../../LICENSE-MIT-0.txt). -Dn-FT NSF driver modifications are under the same license as 0CC-FT NSF driver -modifications. +Dn-FamiTracker NSF driver source as a whole is effectively under the +[GPL v2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html) license. From 2834fbd01850e63b092c13adad7f69f283782bd0 Mon Sep 17 00:00:00 2001 From: Persune Date: Fri, 9 Jan 2026 18:28:23 +0800 Subject: [PATCH 2/4] Reword build dependencies --- CONTRIBUTING.md | 9 +++++---- Dn-help | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c81de4a9..b50e3bd3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -12,14 +12,15 @@ To edit and/or build the source, you may use Visual Studio 2022, or alternativel - Note that HTML Help Workshop is no longer supported and thus no longer available to download on Microsoft's website. - [Link to archived download.](https://web.archive.org/web/20200720082840/http://download.microsoft.com/download/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe) - [Pandoc](https://pandoc.org), for markdown document conversion. - - Currently used for HTMLHelp manual changelog compiling. -- For NSF driver compiling: - - [CC65 build tools](https://cc65.github.io/), make sure `ld65` and `ca65` is available in environment path. + - Currently used for templated pages for the HTMLHelp manual. +- [CC65 build tools](https://cc65.github.io/) + - Used for NSF driver compiling. + - Make sure `ld65` and `ca65` is available in environment path. - For miscellaneous custom build scripts: - [Python 3.10+](https://www.python.org/) - For any IDE that supports building via CMake: - CMake version 3.16+ - - The latest MSVC build tools + - The latest MSVC build tools - may be installed by VS Installer or by other sources - Windows 11 SDK (10.0.26100.0) - may be installed through VS Installer or by other sources diff --git a/Dn-help b/Dn-help index 841456b9..d926b15b 160000 --- a/Dn-help +++ b/Dn-help @@ -1 +1 @@ -Subproject commit 841456b9e6376e11547355cc1325a8dffe016de9 +Subproject commit d926b15b32cc3e03101b779327a997dd4b8a5f8f From 147f466dd4072916df1bc9920d47f7d6bfa16474 Mon Sep 17 00:00:00 2001 From: Persune Date: Sun, 11 Jan 2026 21:03:42 +0800 Subject: [PATCH 3/4] Fix resource compiler being deleted on rebuilds - Update Dn-help build scripts --- .gitignore | 7 ++----- CMakeLists.txt | 4 ++-- Dn-FamiTracker.vcxproj | 4 ++-- Dn-help | 2 +- resource_version_update.py | 10 +++++++++- 5 files changed, 16 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index ad735c2d..bb66858a 100644 --- a/.gitignore +++ b/.gitignore @@ -35,13 +35,10 @@ libft0cc/build libft0cc/build_ms Testing/Temporary -distribute/* - -# ignore submodules -Dn-help/* - # this should be automatically generated at build +distribute/* hlp/HTMLDefines.h +Dn-FamiTracker.rc_status.txt # generated headers /Source/drivers/*.h diff --git a/CMakeLists.txt b/CMakeLists.txt index c300e99c..20eba795 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -46,7 +46,7 @@ find_package(Python 3.10) # update version in Dn-FamiTracker.rc add_custom_command( - OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/Dn-FamiTracker.rc + OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/Dn-FamiTracker.rc_status.txt DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/version.h COMMAND ${Python_EXECUTABLE} resource_version_update.py WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} @@ -82,7 +82,7 @@ add_custom_command( LICENSE.md WORKING_DIRECTORY ${DNHELP_SRC_DIR} COMMAND call ${DNHELP_SRC_DIR}/update-htm-templates - COMMENT "Updating changelog.htm." + COMMENT "Updating templated pages." VERBATIM) # builds the NSF driver diff --git a/Dn-FamiTracker.vcxproj b/Dn-FamiTracker.vcxproj index 3245f3b4..a1391c46 100644 --- a/Dn-FamiTracker.vcxproj +++ b/Dn-FamiTracker.vcxproj @@ -693,7 +693,6 @@ Generating map file for help compiler. call $(SolutionDir)generate-helpmap.bat Dn-help\hlp\HTMLDefines.h;%(Outputs) - $(SolutionDir)Dn-help\hlp\changelog_shell.htm;%(AdditionalInputs) true @@ -847,7 +846,8 @@ python $(SolutionDir)resource_version_update.py Updating version info in resource file. - $(SolutionDir)Dn-FamiTracker.rc;%(Outputs) + $(SolutionDir)Dn-FamiTracker.rc; + $(SolutionDir)Dn-FamiTracker.rc_status.txt;%(Outputs) true diff --git a/Dn-help b/Dn-help index d926b15b..b893c34a 160000 --- a/Dn-help +++ b/Dn-help @@ -1 +1 @@ -Subproject commit d926b15b32cc3e03101b779327a997dd4b8a5f8f +Subproject commit b893c34a4b31f7f37e091d022b7fda287188f30e diff --git a/resource_version_update.py b/resource_version_update.py index fff3662f..e07c758a 100644 --- a/resource_version_update.py +++ b/resource_version_update.py @@ -57,4 +57,12 @@ def overwrite_rc(key_str: str, val_str: str): ) -print(f"Resource versions updated as {ver_api}.{ver_maj}.{ver_min}.{ver_bld}") \ No newline at end of file +print(f"Resource versions updated as {ver_api}.{ver_maj}.{ver_min}.{ver_bld}") + +# TODO: Copy Dn-FamiTracker.rc to a temp file first before executing this +# annoying; Visual Studio Custom build requires that we have an output +# but during rebuilding or cleaning, it deletes that output +# we can't just delete Dn-FamiTracker.rc! +# so instead, we indicate that this is the output it can scapegoat +with open("Dn-FamiTracker.rc_status.txt", mode="w") as output: + output.write("all good!") From d835daa721a7943d06fb86c4e037716c4a598088 Mon Sep 17 00:00:00 2001 From: Persune Date: Sun, 11 Jan 2026 21:07:12 +0800 Subject: [PATCH 4/4] Summarize changes --- CHANGELOG.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d9c69d9b..46263c2d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,11 +6,11 @@ Written by D.P.C.M. Version 0.5.2.9 -Last updated: January 07, 2026 +Last updated: January 11, 2026 --- -## Unreleased - 2026-01-07 +## Unreleased - 2026-01-11 ### Important changes @@ -18,7 +18,7 @@ Last updated: January 07, 2026 ### Improvements -- ... +- Clarify NSF driver licensing (@Gumball2415 #401) ### Bug fixes @@ -42,8 +42,9 @@ Last updated: January 07, 2026 - Refactor custom build commands in `.vcxproj`s (@Gumball2415 #398) - Update CMake build scripts (@Gumball2415 #398) - Update CMake source list in `exe.cmake` (@Gumball2415 #398) - - +- Update NSF driver licensing (@Gumball2415 #401) + - Add MIT-0 license for NSF driver license + - Fix `LICENSE.md` links ## Dn0.5.2 - 2025-08-18