Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
945 changes: 0 additions & 945 deletions 0CC-readme.txt

This file was deleted.

10 changes: 5 additions & 5 deletions Dn-FamiTracker.rc
Original file line number Diff line number Diff line change
Expand Up @@ -553,12 +553,12 @@ BEGIN
BEGIN
VALUE "CompanyName", "Dn Programming Core Management"
VALUE "FileDescription", "Dn-FamiTracker, Extension of FamiTracker"
VALUE "FileVersion", "0.5.1.1"
VALUE "FileVersion", "0.5.2"
VALUE "InternalName", "Dn-FamiTracker.exe"
VALUE "LegalCopyright", "(c) jsr 2005-2020, HertzDevil 2014-2018, Dn Programming Core Management 2020-2025. All rights reserved."
VALUE "OriginalFilename", "Dn-FamiTracker.exe"
VALUE "ProductName", "Dn-FamiTracker"
VALUE "ProductVersion", "0.5.1.1"
VALUE "ProductVersion", "0.5.2"
END
END
BLOCK "VarFileInfo"
Expand Down Expand Up @@ -2127,11 +2127,11 @@ FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
DEFPUSHBUTTON "Update",IDOK,115,175,50,14
PUSHBUTTON "Cancel",IDCANCEL,170,175,50,14
LTEXT "A new version of Dn-FamiTracker is now available.",IDC_STATIC,7,7,162,8
LTEXT "A new version of Dn-FamiTracker has not been found.",IDC_VERSION_STATIC,7,7,174,8
LTEXT "Version (released on )",IDC_VERSIONDATE_MSG,7,21,213,8
LTEXT "Release notes:",IDC_STATIC,7,36,49,8
LTEXT "Release notes:",IDC_VERSION_STATIC2,7,36,213,8
EDITTEXT IDC_RELEASE_MSG,7,52,213,80,ES_MULTILINE | ES_READONLY | WS_VSCROLL | NOT WS_TABSTOP,WS_EX_TRANSPARENT
LTEXT "Pressing ""Update"" will launch the Github web page for this release.",IDC_STATIC,7,140,213,8
LTEXT "Pressing ""Update"" will open the GitHub page for the latest release.",IDC_VERSION_STATIC3,7,140,213,8
CONTROL "Do not remind me again.",IDC_UPDATE_REMIND,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,156,213,10
END

Expand Down
2 changes: 1 addition & 1 deletion Dn-help
Submodule Dn-help updated 1 files
+3 −3 hlp/main_index.htm
89 changes: 89 additions & 0 deletions LICENSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
# Licenses

The application is distributed under the
[GPLv3+ license](https://www.gnu.org/licenses/gpl-3.0.en.html), or any later
version.

```_
Dn-FamiTracker - NES/Famicom sound tracker
Copyright (C) 2020-2025 D.P.C.M.
FamiTracker Copyright (C) 2005-2020 Jonathan Liss
0CC-FamiTracker Copyright (C) 2014-2018 HertzDevil

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
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
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
version.

- FamiTracker
- Copyright (C) 2005-2020 Jonathan Liss
- Licensed under
[GPLv2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html), or any
later version.
- 0CC-FamiTracker
- Copyright (C) 2014-2018 HertzDevil
- 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
- Licensed under the [MIT license](https://mit-license.org/).
- FDS and N163 sound emulator from Mesen
- Copyright (C) 2014-2024 Sour
- Licensed under
[GPLv3](https://www.gnu.org/licenses/old-licenses/gpl-3.0.en.html), or any
later version.
- 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++)
- Copyright (C) 2017 Project Nayuki
- Licensed under the
[MIT license](https://mit-license.org/).
- JSON for Modern C++
- Copyright (C) 2013-2024 Niels Lohmann <https://nlohmann.me>
- Licensed under the [MIT license](https://mit-license.org/).
- libsamplerate
- Copyright (C) 2012-2016, Erik de Castro Lopo <erikd@mega-nerd.com>.
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).
110 changes: 43 additions & 67 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
![Dn-FamiTracker banner logotype](docs/dn_logo.svg)
# ![Dn-FamiTracker banner logotype](docs/dn_logo.svg)

Dn-FamiTracker is a fork of 0CC-FamiTracker that incorporates numerous fixes and features.

The meaning of the name "Dn" is "Derivative n", which alludes to this fork being the nth derivative of the original FamiTracker program.
Dn-FamiTracker is a fork of 0CC-FamiTracker that incorporates numerous fixes and
features.

---

## About

The meaning of the name "Dn" is "Derivative n", which alludes to this fork being
the nth derivative of the original FamiTracker program.

## Notable additions

- New effects: `Nxx`, `=xx`, `Kxx`
Expand All @@ -14,80 +18,52 @@ The meaning of the name "Dn" is "Derivative n", which alludes to this fork being
- Fixed metadata support on NSF 2.0 and NSFe export
- Complete text import/export
- DPCM sample bit order reversal
- Multitrack per-channel export
- Multitrack per-channel `.wav` export
- More accessible DPCM pitch preview
- More accessible VRC7 patch and envelope editing
- Improved FDS, N163 VRC7 and 2A03 emulation
- Restored Help manual, now under maintenance at [Dn-help](https://github.com/Dn-Programming-Core-Management/Dn-help)
- and more to come, see the [release page](https://github.com/Dn-Programming-Core-Management/Dn-FamiTracker/releases) and the [changelog](docs/CHANGELOG.md) for more info
- Restored Help manual, now under maintenance at
[Dn-help](https://github.com/Dn-Programming-Core-Management/Dn-help)
- and more to come, see the
[release page](https://github.com/Dn-Programming-Core-Management/Dn-FamiTracker/releases)
and the [changelog](docs/CHANGELOG.md) for more info

## Downloads

- Download releases: [![GitHub all releases](https://img.shields.io/github/downloads/Dn-Programming-Core-Management/Dn-FamiTracker/total?logo=github&style=flat-square)](https://github.com/Dn-Programming-Core-Management/Dn-FamiTracker/releases)
- GitHub Actions automated builds: [![GitHub Actions](https://img.shields.io/github/actions/workflow/status/Dn-Programming-Core-Management/Dn-FamiTracker/build-artifact.yml?style=flat-square)](https://github.com/Dn-Programming-Core-Management/Dn-FamiTracker/actions/workflows/build-artifact.yml)
- Github Actions automated release builds: [![GitHub](https://img.shields.io/github/actions/workflow/status/Dn-Programming-Core-Management/Dn-FamiTracker/build-release-artifact.yml?style=flat-square)](https://github.com/Dn-Programming-Core-Management/Dn-FamiTracker/actions/workflows/build-release-artifact.yml)
- Legacy AppVeyor Gumball2415 builds: [![AppVeyor](https://img.shields.io/appveyor/build/Gumball2415/dn-famitracker-legacy?logo=appveyor&style=flat-square)](https://ci.appveyor.com/project/Gumball2415/dn-famitracker-legacy/history)
- Legacy AppVeyor automated D.P.C.M. builds: [![AppVeyor](https://img.shields.io/appveyor/build/Gumball2415/dn-famitracker?logo=appveyor&style=flat-square)](https://ci.appveyor.com/project/Gumball2415/dn-famitracker/history)
- AppVeyor notices:
- Due to delayed AppVeyor reintegration, builds for commits `dc4c9e86` to `21413603` are not available.
- Due to delayed AppVeyor branch reconfiguration, builds for commits `bc46c86c` to `a591d154` are not available.
- Due to less reliability, AppVeyor builds beyond `2c997736` are not available.
- Latest release:
- [![Latest release](https://img.shields.io/github/v/release/Dn-Programming-Core-Management/Dn-FamiTracker?sort=semver&display_name=release&logo=github&style=flat-square)](https://github.com/Dn-Programming-Core-Management/Dn-FamiTracker/releases/latest)
- GitHub Actions automated builds:
- [![GitHub Actions](https://img.shields.io/github/actions/workflow/status/Dn-Programming-Core-Management/Dn-FamiTracker/build-artifact.yml?logo=github&style=flat-square)](https://github.com/Dn-Programming-Core-Management/Dn-FamiTracker/actions/workflows/build-artifact.yml)

### AppVeyor CI build notice

- Due to delayed AppVeyor reintegration, builds for commits `dc4c9e86` to
`21413603` are not available.
- Due to delayed AppVeyor branch reconfiguration, builds for commits `bc46c86c`
to `a591d154` are not available.
- Due to less reliability, AppVeyor builds beyond `2c997736` are not available.

### Legacy AppVeyor automated builds

- Legacy AppVeyor automated D.P.C.M. builds:
- [![AppVeyor](https://img.shields.io/appveyor/build/Gumball2415/dn-famitracker?logo=appveyor&style=flat-square)](https://ci.appveyor.com/project/Gumball2415/dn-famitracker/history)
- Legacy AppVeyor Gumball2415 builds:
- [![AppVeyor](https://img.shields.io/appveyor/build/Gumball2415/dn-famitracker-legacy?logo=appveyor&style=flat-square)](https://ci.appveyor.com/project/Gumball2415/dn-famitracker-legacy/history)

## Licenses

The application and the source code are distributed under the [GPLv3+ license](https://www.gnu.org/licenses/gpl-3.0.en.html).

Copyright (C) 2020-2024 D.P.C.M.

### Tracker software and libraries

- FamiTracker
- Copyright (C) 2005-2020 Jonathan Liss
- Licensed under [GPLv2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html).
- 0CC-FamiTracker
- Copyright (C) 2014-2018 HertzDevil
- Licensed under [GPLv2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html).
- 2A03 sound emulator from NSFPlay
- 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
- Licensed under the [MIT license](https://mit-license.org/).
- FDS and N163 sound emulator from Mesen
- Copyright (C) 2014-2024 Sour
- Licensed under [GPLv3](https://www.gnu.org/licenses/old-licenses/gpl-3.0.en.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++)
- Copyright (C) 2017 Project Nayuki
- Licensed under the [MIT license](https://mit-license.org/).
- JSON for Modern C++
- Copyright (C) 2013-2024 Niels Lohmann \<https://nlohmann.me>
- Licensed under the [MIT license](https://mit-license.org/).
- libsamplerate
- Copyright (C) 2012-2016, Erik de Castro Lopo \<erikd@mega-nerd.com>. All rights reserved.
- Licensed under the [BSD-2-Clause license](https://www.freebsd.org/copyright/freebsd-license/).

### NSF Driver

On the FamiTracker website, the NSF driver code is distributed separately from the rest of the source code. This is because jsr wanted to license the driver under a more permissive license than GPL 2, but didn't seem to get around doing so.

HertzDevil erroneously licensed the modified 0CC-FamiTracker NSF driver code under GPL v2, which restricts anyone sharing compiled NSFs and binaries without sharing the assembly source.

Therefore, Dn-FT NSF driver changes are distributed under a separate MIT-0 license, while 0CC FT NSF driver changes are distributed under GPL v2.

The remaining original FT driver code is not under any license.

See [the license file](Source/drivers/asm/LICENSE) for more information.
The application is distributed under the
[GPLv3+ license](https://www.gnu.org/licenses/gpl-3.0.en.html), or any later
version.

For more details, view the [license](LICENSE.md).

## Contributing

[Contributing and compiling](docs/CONTRIBUTING.md)
[Contributing and compiling](./docs/CONTRIBUTING.md)

## See also:
## Program lineage

- nyanpasu64 0CC-FamiTracker (archived): https://github.com/nyanpasu64/j0CC-FamiTracker/
- 0CC-FamiTracker: https://github.com/HertzDevil/0CC-FamiTracker/
- FamiTracker: https://famitracker.com/
- nyanpasu64 0CC-FamiTracker (archived): <https://github.com/nyanpasu64/j0CC-FamiTracker/>
- 0CC-FamiTracker: <https://github.com/HertzDevil/0CC-FamiTracker/>
- FamiTracker: <https://famitracker.com/>
64 changes: 64 additions & 0 deletions Readme.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
___ ___ __ __ __ ___ _____ ___ __ ___ _ _____ ___
/=| \ _ _ ___ | __/_ | \/ |_ _|_ _| _ \ /_ |/ __| |/ / __| _ \===/
/ | |) | ' \|___|| _/ _ | |\/| || | | | | / / _ | (__| ' <| _|| / /
/===|___/|_||_| |_/_/ _|_| |_|___| |_| |_|_\/_/ _|\___|_|\_\___|_|_\=/

Version 0.5.2 - August 18, 2025

--------------------------------------------------------------------------------

Dn-FamiTracker is a fork of 0CC-FamiTracker that incorporates numerous fixes and
features.

The meaning of the name "Dn" is "Derivative n", which alludes to this fork being
the nth derivative of the original FamiTracker program.



Notable additions
-----------------

- New effects: `Nxx`, `=xx`, `Kxx`
- Support for OPLL-as-VRC7
- NSF 2.0 and NSFe export support
- Fixed metadata support on NSF 2.0 and NSFe export
- Complete text import/export
- DPCM sample bit order reversal
- Multitrack per-channel .wav export
- More accessible DPCM pitch preview
- More accessible VRC7 patch and envelope editing
- Improved FDS, N163 VRC7 and 2A03 emulation
- Restored Help manual, now under maintenance at Dn-help
- <https://github.com/Dn-Programming-Core-Management/Dn-help>



License
-------

The application and source code are distributed under the GPLv3+ license, or any
later version.

<https://www.gnu.org/licenses/gpl-3.0.en.html>

For more details, view the LICENSE.md file.


Uninstalling and misc.
----------------------

To uninstall, run "Dn-FamiTracker.exe /unregister". This will remove the file
association.

If you have problems viewing the help manual (Dn-FamiTracker.chm), right click
it and open properties, then click the "Unblock" button in the general tab.



Contact and links
-----------------

GitHub repo: https://github.com/Dn-Programming-Core-Management/Dn-FamiTracker
Help manual repo: https://github.com/Dn-Programming-Core-Management/Dn-help
FamiTracker: http://famitracker.com/
FamiTracker.org community Discord: https://discord.gg/3fBEEyKfMn
19 changes: 14 additions & 5 deletions Source/FamiTracker.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -426,7 +426,7 @@ void CFamiTrackerApp::LoadLocalization()
WORD Major, Minor, Build, Revision;

if (GetFileVersion(DLL_NAME, Major, Minor, Revision, Build)) {
if (Major != VERSION_API || Minor != VERSION_MAJ || Revision != VERSION_MIN || Build != VERSION_REV) // // //
if (Major != VERSION_API || Minor != VERSION_MAJ || Revision != VERSION_MIN || Build != VERSION_BLD) // // //
return;

m_hInstResDLL = ::LoadLibrary(DLL_NAME);
Expand Down Expand Up @@ -569,7 +569,10 @@ void CFamiTrackerApp::UnregisterSingleInstance()

void CFamiTrackerApp::CheckNewVersion(bool StartUp) // // //
{
//return;
// !! !! This member will be overwritten.
// we do this so the "no new updates" pop-up will only show if the user checks
// also, why do we need to pass this to the version checker thread if we're gonna return it again?
m_bStartUp = StartUp;
m_pVersionChecker = std::make_unique<CVersionChecker>(StartUp); // // //
}

Expand Down Expand Up @@ -746,15 +749,21 @@ BOOL CFamiTrackerApp::OnIdle(LONG lCount) // // //
if (CWinApp::OnIdle(lCount))
return TRUE;

if (m_pVersionChecker && m_pVersionChecker->IsReady())
if (auto pChecker = std::move(m_pVersionChecker); auto result = pChecker->GetVersionCheckResult())
{
if (m_pVersionChecker && m_pVersionChecker->IsReady()) {
if (auto pChecker = std::move(m_pVersionChecker); auto result = pChecker->GetVersionCheckResult()) {
m_pVersionURL = result->URL;
m_pVerInfo = result->VerInfo;
m_pVerDesc = result->VerDesc;
m_bStartUp = result->StartUp;
m_bNewVersion = true;
OnVersionCheck();
}
else {
m_bNewVersion = false;
m_pVersionURL = "https://github.com/Dn-Programming-Core-Management/Dn-FamiTracker/releases/latest";
if (!m_bStartUp) OnVersionCheck();
}
}
return FALSE;
}

Expand Down
1 change: 1 addition & 0 deletions Source/FamiTracker.h
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,7 @@ class CFamiTrackerApp : public CWinApp
public:
std::unique_ptr<CVersionChecker> m_pVersionChecker; // // //
std::string m_pVersionURL, m_pVerInfo, m_pVerDesc;
bool m_bNewVersion;
bool m_bStartUp;

#ifdef SUPPORT_TRANSLATIONS
Expand Down
Loading