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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ distribute/*
# this should be automatically generated at build
hlp/HTMLDefines.h
hlp/changelog.htm
hlp/license.htm

## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
Expand Down
26 changes: 19 additions & 7 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,30 +6,42 @@ Written by D.P.C.M.

Version 0.5.2.9

Last updated: January 06, 2025
Last updated: January 11, 2025

---

## Unreleased - 2026-01-06
## Unreleased - 2026-01-11

### Important changes

- ...
- Remove unused `sound.htm` page (@Gumball2415 #16)
- Explicitly mention licensing for Dn-help (@Gumball2415 #16)

### Improvements

- ...
- Reword module properties description (@Gumball2415 #16)
- Declutter and update pattern editor descriptions (@Gumball2415 #16)
- Add description of hold instrument `&&` command (@brickblock369 @Gumball2415 #14 #16)
- Add more detailed expansion audio chip images (@Gumball2415 #16)
- Link GPLv2, GPLv3, and MIT-0 license texts (@Gumball2415 #16)
- Link to DPCM pitch table in DPCM import/editor page (@Gumball2415 #16)
- Update Namco 163 information (@Gumball2415 #16)
- Add description of exponential volume in 5B instruments page (@Gumball2415 #16)

### Bug fixes

- ...
- Fix spellings of "GitHub" (@Gumball2415 #16)
- Fix and refactor table stylings (@Gumball2415 #16)
- Sort `Exx` hardware length counter value table
- Clarify 5B `V0x` command table

### Internal

- Move `CHANGELOG.md` to solution root folder (@Gumball2415 #15)
- Update GitHub pull request template (@Gumball2415 #15)
- Refactor HTMLHelp custom build commands (@Gumball2415 #15)
- Add change log (@Gumball2415 #15)
- Add dedicated Python script for patching template files (@Gumball2415 #9 #16)



Expand Down Expand Up @@ -142,10 +154,10 @@ This update simply adds the changelog information from 0.4.0.0 and 0.4.0.1 into

Additions

- Updated the changelog to version 0.3.1.0
- Updated the changelog to version 0.3.1.0



#### Note from Dn-FT maintainer:
## Note from Dn-FT maintainer

Before this release, Dn-help used to be part of the main repository, where it was first reimplemented at Dn0.3.0.0. Then, Dn-help became its own subrepository, where the initial commit was made on 2021-04-30, sometime after Dn0.3.0.0.
File renamed without changes.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Dn-Famitracker Help

This repository hosts the source code for [Dn-Famitracker](https://github.com/Dn-Programming-Core-Management/Dn-FamiTracker)'s help dialog. While the main program indeed has this contained within it's own source code, the main use of this repository is to provide finalized and finished versions of the Help File to all new releases of Dn-FamiTracker.
This repository hosts the source code for [Dn-Famitracker](https://github.com/Dn-Programming-Core-Management/Dn-FamiTracker)'s help dialog. While the main program indeed has this contained within it's own source code, the main use of this repository is to provide finalized and finished versions of the Help File to all new releases of Dn-FamiTracker.

As such it is best to consider this repository a "development" build of the help file, and may not represent the "final" builds included with Dn-FamiTracker releases.

Expand All @@ -21,4 +21,4 @@ All contributions are welcome, feel free to submit pull requests, or submit sugg

## License

Since this is a fragment of [Dn-Famitracker](https://github.com/Dn-Programming-Core-Management/Dn-FamiTracker)'s codebase, the license falls under the same terms.
Since this is a fragment of [Dn-Famitracker](https://github.com/Dn-Programming-Core-Management/Dn-FamiTracker)'s codebase, the license falls under the same terms. Dn-help project files are licensed under GPL v3.
202 changes: 103 additions & 99 deletions hlp/2a03.htm
Original file line number Diff line number Diff line change
Expand Up @@ -3,36 +3,32 @@
<META NAME="GENERATOR" Content="Microsoft Visual Studio 8.0">
<TITLE></TITLE>
<link href="style.css" rel="stylesheet" type="text/css" />
<style type="text/css">
td.key
{
width: 35px;
text-align: center;
border: solid 1px #808080;
}
td.freq
{
width: 100px;
text-align: center;
border: solid 1px #808080;
}
</style>
</HEAD>
<BODY>

<span class="topic">2A03/2A07 internal channels</span><hr />

<center><p>
<img id="img" style="height: 25%; float: center;" src="img/chip_2A03.png"
alt="Picture of the 2A03G chip"></p></center>
<span class="topic">2A03/2A07 APU</span><hr />

<div style="text-align: center;">
<img id="img" src="img/chip_2A03.png"
alt="Picture of the 2A03G chip" height="100px"/>
<div class="footer">
Image: Persune</div>
</div>
<br />
<div style="text-align: center;">
<img id="img" src="img/chip_2A07.png"
alt="Picture of the 2A07 chip" height="100px"/>
<div class="footer">
Image: <a href="https://www.nesdev.org/wiki/File:CPU%3DRP2A07_7C4_39.jpg" target="new">Loglow</a></div>
</div>

<p class="heading">About</p>

<p class="text">
This is the sound generator found inside the NES CPU. The NTSC version
(America/Japan) is named 2A03 and the PAL version (europe) is named 2A07. The
difference between the chips is that NTSC version runs at 1.79 MHz
while PAL runs at 1.66 MHz.</p>
(America/Japan) is named 2A03 and the PAL version (europe) is named
2A07. The main difference between the chips is that NTSC version runs
at 1.79 MHz while PAL runs at 1.66 MHz.</p>

<p class="text">
The audio update rate is typically tied to NMI or the video refresh rate, where each
Expand All @@ -45,13 +41,19 @@

<ul class="text">
<li><b>Pulse 1 and 2</b><br />
Produces pulse waves with four duty lengths (12.5%, 25%, 50% and 25% inverted).
These channels have a hardware sweep unit that can be accessed by
<a href="effect_list.htm#HardwareSweepUp">H and I effects</a>. These channels also have a
hardware volume envelope, accesible with <a href="effect_list.htm#Volume2A03LengthCounter">Exx effects.</a><br /><br />
<i>Note:</i> There is a hardware quirk that resets the duty phase when the high
byte of the freqency registers are written, this can be heard as a pop and might
be noticable when using vibrato or pitch slides across those frequencies.<br /><br />
Produces pulse waves with four duty lengths (12.5%, 25%, 50% and
25% inverted). These channels have a hardware sweep unit that can
be accessed by
<a href="effect_list.htm#HardwareSweepUp">H and I effects</a>.
These channels also have a hardware volume envelope, accesible with <a href="effect_list.htm#Volume2A03LengthCounter">Exx effects.</a>
<br />
<br />
<i>Note:</i> There is a hardware quirk that resets the duty phase
when the high byte of the freqency registers are written, this can
be heard as a pop and might be noticable when using vibrato or
pitch slides across those frequencies.
<br />
<br />
</li>

<li><b>Triangle</b><br />
Expand Down Expand Up @@ -79,19 +81,15 @@
</li>
</ul>

<table class="noteFrame" cellpadding="5px">
<tr>
<td>
<p class="text">
<b>Note:</b>
The volume level
of triangle and noise channels will be affected by the DPCM channel,
due to the way the sound is mixed in the hardware.
More info is available on the bottom of this page.
</p>
</td>
</tr>
</table>
<table class="noteFrame" cellpadding="5px"><tr><td>
<p class="text">
<b>Note:</b>
The volume level
of triangle and noise channels will be affected by the DPCM channel,
due to the way the sound is mixed in the hardware.
More info is available on the bottom of this page.
</p>
</td></tr></table>

<hr />
<p class="heading"><a name="Instruments">Instruments</a></p>
Expand Down Expand Up @@ -177,8 +175,11 @@
<ul class="text">
<li>
<b>Load</b><br />
Load samples from files, the default file extension for DPCM files is &#39;.dmc&#39;. The format must be 1-bit delta PCM and max size is 4081
bytes. The size should be a multiple of 16 bytes with 1 additional byte, otherwise the sample will be padded.<br /><br />
Load samples from files, the default file extension for DPCM files
is &#39;.dmc&#39;.<br />
The format must be 1-bit delta PCM and the maximum size is 4081
bytes.
The size should be a multiple of 16 bytes with 1 additional byte, otherwise the sample will be padded.<br /><br />
</li>
<li>
<b>Unload</b><br />
Expand All @@ -190,8 +191,8 @@
</li>
<li>
<b>Import</b><br />
Load and convert PCM&nbsp; files to delta PCM.
<a href="dpcm_import.htm">See more info about importing PCM.</a><br /><br />
Load and convert .wav PCM&nbsp; files to DPCM.
<a href="dpcm_import.htm">See more info about importing .wav PCM.</a><br /><br />
</li>
<li>
<b>Edit</b><br />
Expand Down Expand Up @@ -230,95 +231,98 @@
The pitch setting translates to a playback samplerate according to the
following table (using the tracker's NTSC and PAL clock frequency of 1.789773 MHz and 1.662607 MHz respectively):</p>

<table class="default" border="1" cellpadding="3px" style="width: 130px">
<table class="default" style="width: 400px;" border="1" cellpadding="3px">
<tr>
<td class="key highlight"><b>Key</b></td>
<td class="freq highlight"><b>Frequency (NTSC)</b></td>
<td class="freq highlight"><b>Frequency (PAL)</b></td>
<td class="highlight" style="width: 35px; text-align: center;">
<b>Pitch</b></td>
<td class="highlight" style="text-align: center;">
<b>Sample rate frequency (NTSC)</b></td>
<td class="highlight" style="text-align: center;">
<b>Sample rate frequency (PAL)</b></td>
</tr>
<tr>
<td class="key">0</td>
<td class="freq">4181.71 Hz</td>
<td class="freq">4177.40 Hz</td>
<td>0</td>
<td>4181.71 Hz</td>
<td>4177.40 Hz</td>
</tr>
<tr>
<td class="key">1</td>
<td class="freq">4709.93 Hz</td>
<td class="freq">4696.63 Hz</td>
<td>1</td>
<td>4709.93 Hz</td>
<td>4696.63 Hz</td>
</tr>
<tr>
<td class="key">2</td>
<td class="freq">5264.04 Hz</td>
<td class="freq">5261.41 Hz</td>
<td>2</td>
<td>5264.04 Hz</td>
<td>5261.41 Hz</td>
</tr>
<tr>
<td class="key">3</td>
<td class="freq">5593.04 Hz</td>
<td class="freq">5579.22 Hz</td>
<td>3</td>
<td>5593.04 Hz</td>
<td>5579.22 Hz</td>
</tr>
<tr>
<td class="key">4</td>
<td class="freq">6257.95 Hz</td>
<td class="freq">6023.94 Hz</td>
<td>4</td>
<td>6257.95 Hz</td>
<td>6023.94 Hz</td>
</tr>
<tr>
<td class="key">5</td>
<td class="freq">7046.35 Hz</td>
<td class="freq">7044.94 Hz</td>
<td>5</td>
<td>7046.35 Hz</td>
<td>7044.94 Hz</td>
</tr>
<tr>
<td class="key">6</td>
<td class="freq">7919.35 Hz</td>
<td class="freq">7917.18 Hz</td>
<td>6</td>
<td>7919.35 Hz</td>
<td>7917.18 Hz</td>
</tr>
<tr>
<td class="key">7</td>
<td class="freq">8363.42 Hz</td>
<td class="freq">8397.01 Hz</td>
<td>7</td>
<td>8363.42 Hz</td>
<td>8397.01 Hz</td>
</tr>
<tr>
<td class="key">8</td>
<td class="freq">9419.86 Hz</td>
<td class="freq">9446.63 Hz</td>
<td>8</td>
<td>9419.86 Hz</td>
<td>9446.63 Hz</td>
</tr>
<tr>
<td class="key">9</td>
<td class="freq">11,186.08 Hz</td>
<td class="freq">11,233.8 Hz</td>
<td>9</td>
<td>11,186.08 Hz</td>
<td>11,233.8 Hz</td>
</tr>
<tr>
<td class="key">10</td>
<td class="freq">12,604.03 Hz</td>
<td class="freq">12,595.5 Hz</td>
<td>10</td>
<td>12,604.03 Hz</td>
<td>12,595.5 Hz</td>
</tr>
<tr>
<td class="key">11</td>
<td class="freq">13,982.60 Hz</td>
<td class="freq">14,089.9 Hz</td>
<td>11</td>
<td>13,982.60 Hz</td>
<td>14,089.9 Hz</td>
</tr>
<tr>
<td class="key">12</td>
<td class="freq">16,884.65 Hz</td>
<td class="freq">16,965.4 Hz</td>
<td>12</td>
<td>16,884.65 Hz</td>
<td>16,965.4 Hz</td>
</tr>
<tr>
<td class="key">13</td>
<td class="freq">21,306.82 Hz</td>
<td class="freq">21,315.5 Hz</td>
<td>13</td>
<td>21,306.82 Hz</td>
<td>21,315.5 Hz</td>
</tr>
<tr>
<td class="key">14</td>
<td class="freq">24,857.95 Hz</td>
<td class="freq">25,191.0 Hz</td>
<td>14</td>
<td>24,857.95 Hz</td>
<td>25,191.0 Hz</td>
</tr>
<tr>
<td class="key">15</td>
<td class="freq">33,143.94 Hz</td>
<td class="freq">33,252.1 Hz</td>
<td>15</td>
<td>33,143.94 Hz</td>
<td>33,252.1 Hz</td>
</tr>
</table>

<p class="text"><a href="https://www.nesdev.org/wiki/APU_DMC#Pitch_table">Reference.</a></p>
<p class="text"><a href="https://www.nesdev.org/wiki/APU_DMC#Pitch_table" target="new">Reference.</a></p>

<table class="noteFrame" cellpadding="5px">
<tr>
Expand Down
16 changes: 15 additions & 1 deletion hlp/Dn-FamiTracker.hhc
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,21 @@
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="License">
<param name="Local" value="../LICENSE.txt">
<param name="Local" value="license.htm">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="GNU General Public License v2">
<param name="Local" value="LICENSE-GPLv2.txt">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="GNU General Public License v3">
<param name="Local" value="LICENSE-GPLv3.txt">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="MIT No Attribution License">
<param name="Local" value="LICENSE-MIT-0.txt">
</OBJECT>
</UL>
</UL>
</BODY></HTML>
Loading