Skip to content

Dn‐FamiTracker module file format specification (.dnm) v4.50

Persune edited this page Oct 14, 2023 · 10 revisions

Dn-FamiTracker module file (.dnm) format specification (v4.50)

About

  • Incomplete!
  • This text aims to document the binary module file format as of Dn-FamiTracker v0.5.0.1. Each section is declared sequentially as it appears in the file.
  • Data is stored little-endian unless specified otherwise.
  • String encoding is always ASCII.

Header (v4.50)

Header "block"

Declared type Name Size (in bytes) Data example Description Notes
const char* (C-style string) FILE_HEADER_ID or FILE_HEADER_ID_DN length of C-style string FamiTracker Module, Dn-FamiTracker Module Identifier string in Dn-FT v0.5.0.0, this was changed to Dn-FamiTracker Module for non-backwards compatibility of new features.
unsigned int (uint32_t) FILE_VER 4 0x0450 Module version Version number is formatted as BCD (ex. 4.50)

Notes

  • Information is based on DocumentFile.cpp CDocumentFile::BeginDocument() and FamiTrackerDoc.cpp CFamiTrackerDoc::SaveDocument()
  • Modules saved in Dn-FamiTracker v0.5.0.0 and later may save modules with FILE_HEADER_ID_DN identifiers, to prevent older FamiTracker versions from reading non-backwards compatible data such as FILE_BLOCK_JSON and FILE_BLOCK_PARAMS_EMU.

Internal blocks

Parameters block

Notes

  • Information is based on CFamiTrackerDoc::WriteBlock_Parameters()

Song Info block

Tuning block

Header block

Instruments block

Sequences block

Frames block

Patterns block

DPCM Samples block

Comments block

Expansion blocks

VRC6 Sequences block

N163 Sequences block

S5B Sequences block

0CC-FamiTracker extension blocks

Extra Parameters block

Detune Tables block

Grooves block

Bookmarks block

Dn-FamiTracker extension blocks

JSON block

Emulation Parameters block

Clone this wiki locally