Skip to content

Commit

Permalink
Port GitHub wiki pages to repo markdown files
Browse files Browse the repository at this point in the history
  • Loading branch information
Gumball2415 committed Jul 20, 2024
1 parent 2f525d4 commit d7821f6
Show file tree
Hide file tree
Showing 8 changed files with 2,867 additions and 0 deletions.
33 changes: 33 additions & 0 deletions docs/0CC vs FT effects type order.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# 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).

my guess is cross compatibility with earlier 0CC versions that didn't respect FT 050B+'s effect type order?
we can't do anything to change it, now.

```
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)
```
Loading

0 comments on commit d7821f6

Please sign in to comment.