Skip to content

Instantly share code, notes, and snippets.

@HertzDevil
Last active January 11, 2017 17:04
Show Gist options
  • Save HertzDevil/c158d826a344e5ffbc0c0989e1c96a24 to your computer and use it in GitHub Desktop.
Save HertzDevil/c158d826a344e5ffbc0c0989e1c96a24 to your computer and use it in GitHub Desktop.
FamiTracker 0.5.0 Beta 5 File Format Differences

PARAMS

  • Reading: Done
  • Refresh rate: Converts to integer rate if custom rate is used, otherwise assumes default rate
  • 2A03 sweep reset flag: Read but discarded
  • Highlight settings: Done
  • Global tuning: Done, data currently saves to PARAMS_EXTRA block

HEADER

  • Reading: Done
  • Highlight settings: Uses settings of first song for all songs

INSTRUMENTS

  • Reading: Done
  • 2A03 DPCM assignments: Done
  • N163 auto-position: Read but discarded

PATTERNS

  • Reading: Done
  • Blank effect commands: Done
  • 0CC effect conversion: Done (old 0CC-FT modules might become incompatible)

New data

PARAMS

Current version = 6
Latest version = 9

  • char Expansion chip
  • int Channel count
  • int Region type, 0 = NTSC, 1 = PAL
  • Version >= 7:
    • int Refresh rate setting, 0 = default, 1 = custom, 2 = Vsync rate
    • int Custom refresh interval (in microseconds)
  • Version <= 6:
    • int Refresh rate (in hertz)
  • int Vibrato style, 0 = old, 1 = new
  • Version >= 9:
    • int 2A03 sweep style, 0 = hold period, 1 = reset period on new commands (default)
  • Version <= 6:
    • int First row highlight
    • int Second row highlight
  • N163 is used:
    • int Number of N163 channels
  • int Fxx tempo/speed split point
  • Version >= 8:
    • char: Global semitone detune offset
    • char: Global cent detune offset

HEADER

Current version = 3
Latest version = 4

  • char Number of songs - 1
  • For each song:
    • szString Song name
  • For each channel:
    • char Channel index, discarded
    • For each song:
      • char Effect column count - 1
  • Version >= 4:
    • For each song:
      • char First row highlight
      • char Second row highlight

INSTRUMENTS

Current version = 6
Latest version = 9 (8 in beta 4 and before, no actual changes)

(Same as version 6)

PATTERNS

Current version = 5
Latest version = 6

  • For each defined pattern:
    • int Song index
    • int Channel position
    • int Pattern index
    • int Number of rows
    • For each defined row:
      • Version >= 6:
        • char Row index
      • Version <= 5:
        • int Row index
      • char Note name
      • char Note octave
      • char Channel instrument
      • char Channel volume
      • Version >= 6:
        • For each effect column:
          • char Effect type
          • If effect is not blank:
            • char Effect parameter
      • Version <= 5:
        • For each used effect column:
          • char Effect type
          • char Effect parameter

2A03

  • int Number of sequences
  • For each sequence:
    • bool Enable flag
    • char Sequence index
  • Version >= 7:
    • int Number of DPCM assignments
    • For each assignment:
      • char Note index
      • char DPCM index
      • char DPCM pitch (+0x80: loop)
      • char DPCM delta offset
  • Version <= 6:
    • For each note:
      • char DPCM index
      • char DPCM pitch (+0x80: loop)
      • char DPCM delta offset

N163

  • int Number of sequences
  • For each sequence:
    • bool Enable flag
    • char Sequence index
  • int Wave size
  • int Wave position
  • Version >= 8:
    • int Auto-position flag
  • int Wave count
  • For each wave:
    • For each sample:
      • char Wave sample value

5B

  • int Number of sequences
  • For each sequence:
    • bool Enable flag
    • char Sequence index

Note field

  • FF: Hold instrument ("&&")

Effect number

  • 1E: 5B Hxy (conflicts with 0CC-FT 5B Hxx)
  • 1F: 5B Ixx
  • 20: 5B Jxx (conflicts with 0CC-FT 5B Jxx)
  • 21: 5B Wxx (conflicts with 0CC-FT Lxx)
  • 22: VRC7 Hxx (conflicts with 0CC-FT Oxx)
  • 23: VRC7 Ixx (conflicts with 0CC-FT Txy)

Instrument sequence type

  • 00: 16-step volume sequence
  • 01: 64-step volume sequence
  • 00: Absolute pitch sequence
  • 01: Relative pitch sequence
  • 02: Sweep pitch sequence (as in rainwarrior's hardware sweep mod)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment