Skip to content

Commit

Permalink
Merge pull request #319 from Dn-Programming-Core-Management/docs-lice…
Browse files Browse the repository at this point in the history
…nse-ver-meta-dev

Update docs and port from GitHub Wiki
  • Loading branch information
Gumball2415 authored Jan 11, 2025
2 parents 6ee0043 + c8f2cda commit f291d67
Show file tree
Hide file tree
Showing 11 changed files with 804 additions and 8 deletions.
32 changes: 32 additions & 0 deletions docs/0CC vs FT effects type order.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# 0CC vs FT effect type order

0CC for some reason uses a slightly different effects type order within the tracker, but converts to FT 050B+ effects type order when saved to a file.

In Dn-FT v.0.5.0.0, this conversion logic was disturbed, resulting in 0CC effects type order not being properly converted back to FT 050B+ when saving. This issue has been fixed in [commit df78460](https://github.com/Dn-Programming-Core-Management/Dn-FamiTracker/commit/df78460aae403daf2bb68891c788248bbc8a8a02).

For devs: please increment PATTERNS block version immediately.

```
After EF_SUNSOFT_ENV_LO (Jxx S5B),
FT order:
EF_NOTE_RELEASE (Lxx)
EF_GROOVE (Oxx)
EF_TRANSPOSE (Txy)
EF_N163_WAVE_BUFFER (Zxx N163)
EF_FDS_VOLUME (Exx FDS)
EF_FDS_MOD_BIAS (Zxx FDS)
EF_SUNSOFT_NOISE (Wxx S5B)
EF_VRC7_PORT (Hxx VRC7)
EF_VRC7_WRITE (Ixx VRC7)
0CC order:
EF_SUNSOFT_NOISE (Wxx S5B)
EF_VRC7_PORT (Hxx VRC7)
EF_VRC7_WRITE (Ixx VRC7)
EF_NOTE_RELEASE (Lxx)
EF_GROOVE (Oxx)
EF_TRANSPOSE (Txy)
EF_N163_WAVE_BUFFER (Zxx N163)
EF_FDS_VOLUME (Exx FDS)
EF_FDS_MOD_BIAS (Zxx FDS)
```
44 changes: 44 additions & 0 deletions docs/0CC-Dn-FT NSF driver update sequence.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# 0CC-Dn-FT NSF driver update sequence

This doc aims to detail the update order as observed in the NSF driver.

Ideally, the NSF driver should be the de-facto standard in how FT modules should
behave, but since the tracker has desynced in feature parity, this may not be
the case.

Regardless, this should serve as a reference as to how the driver updates in
sequence.

```
ft_music_play
(delay handling)
(tempo handling)
ft_do_row_update
(frame handling)
ft_read_channels (foreach channels do:)
ft_read_pattern
ft_read_note
(switch case pattern command)
(handle volume commands)
(handle instrument commands)
(handle effect commands)
ft_push_echo_buffer
(handle note off)
(handle note release)
(load echo buffer)
ft_push_echo_buffer
(handle note)
ft_read_is_done
ft_skip_row_update (when no updates are available)
(tempo handling)
ft_loop_fx_state
(Sxx handling)
(delayed transpose/release handling)
ft_loop_channels (foreach channels do:)
ft_run_effects (handles the rest of the other effects)
ft_run_instrument
ft_calc_period
(Nxy handling)
ft_update_<chip> (foreach chip do:)
(register writes)
```
19 changes: 12 additions & 7 deletions docs/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,17 @@ Welcome! Thank you for considering to contribute to Dn-FamiTracker. We really ne

## Git guidelines

- Write pull requests that passes CI builds.
- Make sure to adhere to the [pull request template](pull_request_template.md) message guidelines.
- Write pull requests that passes CI builds and tests.
- Make sure to adhere to the [pull request template](Dn-FamiTracker/docs/pull_request_template.md) message guidelines.
- Base your pull request on the `main` branch.
- If a merge conflict happens due to not being updated in a long time, resolve merge conflicts and rebase your pull request to the latest reasonable version of the `main` branch.
- If a merge conflict happens due to not being updated in a long time, resolve merge conflicts and rebase your pull request to the latest compatible version of the `main` branch.
- Be sure to update [Dn-Help](https://github.com/Dn-Programming-Core-Management/Dn-help) on your pull request as needed.
- Create a corresponding pull request on Dn-help that links to your main pull request.

### For Dn-FT maintainers:

- Do **NOT** push directly to the `main` branch. Instead, push your changes to these branches first before writing a pull request:
- Do **NOT** push directly to the `main` branch. Instead, push your changes to a branch first before writing a pull request.
- These branches are designated to be reoccurring may be used for the following:
- `app-emu-module-nsf_driver-dev`
- This branch is for modifying the application itself, such as the NSF driver, the module format, loading and saving code, emulator core, audio drivers, etc.
- `docs-license-ver-meta-dev`
Expand All @@ -29,7 +32,7 @@ Welcome! Thank you for considering to contribute to Dn-FamiTracker. We really ne
- You will most likely force push this branch to hell and back, so be sure to do it on your own GitHub user's fork.
- Other branches may be made for more niche/specific modifications and fixes.
- If your pull request touches two or more of these categories, it's fine but please keep it minimal.
- Otherwise, create a new branch as mentioned previously.
- Otherwise, create a new branch.

## Dependencies and Building

Expand Down Expand Up @@ -64,5 +67,7 @@ To edit and/or build the source, you may use Visual Studio 2022, or alternativel

## Important Things to Note

- When committing changes, **file extension case must be the same as the original file!** This might result in merge conflicts, because Git is case sensitive, but in Windows systems, the file system is case insensitive by default.
- Additionally, case sensitivity in Windows can be enabled through WSL, but it **must only be enabled to resolve merge conflicts regarding file extension case sensitivity**. If case sensitivity is left enabled, Visual Studio throws a bunch of errors due to the way IntelliSense capitalizes paths internally.
- When committing changes, ***file extension case must be the same as the original file!***
- This might result in merge conflicts, because Git is case sensitive, but in Windows systems, the file system is case insensitive by default.
- Additionally, case sensitivity in Windows can be enabled through WSL, but it **must only be enabled to resolve merge conflicts regarding file extension case sensitivity**.
- If case sensitivity is left enabled, Visual Studio throws a lot of errors due to the way IntelliSense capitalizes paths internally.
24 changes: 24 additions & 0 deletions docs/Dn-FT JSON block format v1_1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Dn-FT JSON block format version 1.1
Must always be backwards compatible using a never remove, only add strategy.

Listed below are all the recognized keywords, with their default values.

**JSON data is only for optional settings, do not add any tracker or emulator crucial data here!**

```JSON
{
// Device mixing offsets, described in centibels. too late to change to millibels.
// range is +- 12 db.
"apu1-offset": 0,
"apu2-offset": 0,
"fds-offset": 0,
"mmc5-offset": 0,
"n163-offset": 0,
"s5b-offset": 0,
"vrc6-offset": 0,
"vrc7-offset": 0,

// Use better mixing values derived from survey: https://forums.nesdev.org/viewtopic.php?f=2&t=17741
"use-survey-mix": false
}
```
Loading

0 comments on commit f291d67

Please sign in to comment.