Dn-FamiTracker icon indicating copy to clipboard operation
Dn-FamiTracker copied to clipboard

NSF Driver and Export Fixes

Open Gumball2415 opened this issue 1 year ago • 3 comments

This pull request aims to fix various bugs regarding NSF driver export and execution.

This pull request improves upon and supercedes #156.

Changes in this PR:

  • Major export refactoring
    • Use CCompiler pointer for writing ASM export title
    • Decouple NSFDRV header from driver data
    • Add NSF stub file for .asm export
    • Fix assembly period table export
    • Fix VRC7 period table assembly export
    • Implement "glob" multichip assembly export
    • Ignore invalid pattern data upon NSF export
      • Fixes #215
    • Specify what parts of pattern data are invalid
    • Differentiate between error and warning colors
    • Account for HOLD_INSTRUMENT in pattern checking
    • Specify overflow in driver bank allocation
    • Refactor compressed mode size calculation
    • Include N163 period table in .asm export
    • Declare alignment for first DPCM sample in assembly export
    • Remove hardcoded bank references in assembly song header
    • Implement bankswitched assembly config exports
    • Add bank 0 for nonbankswitching config
    • Refactor NSFe metadata generation
    • Fix NES ROM export data alignment
      • Fixes #278
    • Fix DPCM segment start address in nonbankswitching assembly
    • Refactor multifile export
  • NSF driver fixes
    • Fix N163 instrument load clobbering Kxx state
      • Fixes #224
      • Fixes #260
      • Iterates on #156
    • Fix S5B init clobbering Kxx state
      • Fixes #256
      • Fixes #246
      • Fixes #215
    • Write carrier frequency regardless of Kxx state
      • Fixes #196
    • Fix phase reset behavior
    • Refactor phase reset code
    • Update effect bytecodes in row skip handling
      • Fixes #183
    • Handle Gxx delay commands in both row and frame transitions
      • Fixes #207
    • Fix S5B instrument duty envelopes
      • Fixes #267
    • Clamp pitch and hi-pitch envelope period results
    • Enable pitch sliding in linear pitch mode
    • Implement linear pitch period limit
    • Correct linear pitch calculation sequence
  • Internal fixes
    • Fix debug constexpr
  • In-beta issue (#276):
    • Refactor Pitch/HiPitch bend logic
    • Apply N163 slide shift if linear pitch is disabled
      • Addresses #276
    • Refactor period limit subroutine
      • Fixes #276.
    • Fix N163 portamento shift in linear period
      • Fixes #276

Leafuw, nyanpasu64, and Zeta, thank you for your help!

Gumball2415 avatar Feb 17 '24 17:02 Gumball2415

TODO: fix linear pitch pitch sequences TODO: fix filename handling with two filetype extensions

Gumball2415 avatar Jun 13 '24 06:06 Gumball2415

TODO: fix asm export DPCM start address issue with beep.dnm

Gumball2415 avatar Jun 20 '24 15:06 Gumball2415

TODO: fix linear pitch pitch sequences

fixed in 4ce047dda2e9d2870039c3aa5b241b0b675b7576

TODO: fix asm export DPCM start address issue with beep.dnm

fixed in fa05bd9

Gumball2415 avatar Jul 20 '24 10:07 Gumball2415