Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update docs and port from GitHub Wiki #319

Merged
merged 2 commits into from
Jan 11, 2025
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
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