BMT (Chords) (File Format)

From Luma's Workshop
Jump to navigation Jump to search

Not to be confused with BMT (Material) (File Format).


BMT (Binary Melody Table) files contain general information for Chords. Super Mario Galaxy and Super Mario Galaxy 2 each contain only one BMT file, located in AudioRes/Info/JaiMe.arc/me/metable.bmt.
The main Chord data is contained in defaultme.bme from the same archive, see BME (File Format).

Header

The BMT format contains no header magic like most files do. Instead, it consists of a Melody Count and Offsets. The size of the header is 0x10.

Offset Type Description
0x00 UInt32 (0x4) Melody Count
0x04 UInt32 (0x4) Offset to Melody Information
0x08 UInt32 (0x4) Offset to Melody Names
0x0C ? (0x4) Likely padding

Melody Information

This section contains general information for Chords. It's size is 0x8 x Melody Count. The following table lists the information defined for one Chord:

Offset Type Description
0x00 UInt8 (0x1) ? (mostly 0x64)
0x01 UInt8 (0x1) Chord Volume
0x02 UInt8 (0x1) ? (always 0x40)
0x03 UInt8 (0x1) ? (mostly 0x0A)
0x04 UInt8 (0x1) ? (always 0x00)
0x05 UInt8 (0x1) ? (mostly 0x1E)
0x06 UInt8 (0x1) ? (mostly 0x00)
0x07 UInt8 (0x1) ? (mostly 0x00)

Melody Names

This section simply contains names for each Chord and is likely irrelevant for the game's execution. It starts with a sub-section that contains offsets for each name. The size of this sub-section is 0x4 x Melody Count.

Melody Name Offsets

Offset Type Description
0x00 UInt32 (0x4) Offset to Melody Name

Melody Name List

Each Chord name is stored in ANSI and ends with a Null-Terminator. The following names can be found in both games:

SMG SMG2
ME_TEST_01 ME_TEST_01
ME_TEST_02 ME_TEST_02
ME_MAGIC ME_MAGIC
ME_DPD_HIT ME_DPD_HIT
ME_COIN_APPEAR_S ME_COIN_APPEAR_S
ME_MAGIC_L ME_MAGIC_L
ME_TALKBLN_EXCLA ME_TALKBLN_EXCLA
ME_FLOWER_FAIRY_GET0 ME_DUMMY_07
ME_FLOWER_FAIRY_GET1 ME_DUMMY_08
ME_ASTRO_DOME_HIT_GALAXY1 ME_ASTRO_DOME_HIT_GALAXY1
ME_ASTRO_DOME_HIT_GALAXY2 ME_ASTRO_DOME_HIT_GALAXY2
ME_ASTRO_DOME_HIT_GALAXY3 ME_ASTRO_DOME_HIT_GALAXY3
ME_ASTRO_DOME_HIT_GALAXY4 ME_ASTRO_DOME_HIT_GALAXY4
ME_ASTRO_DOME_HIT_GALAXY5 ME_ASTRO_DOME_HIT_GALAXY5
ME_ASTRO_DOME_SELECT1 ME_ASTRO_DOME_SELECT1
ME_ASTRO_DOME_SELECT2 ME_ASTRO_DOME_SELECT2
ME_ASTRO_DOME_SELECT3 ME_ASTRO_DOME_SELECT3
ME_ASTRO_DOME_SELECT4 ME_ASTRO_DOME_SELECT4
ME_ASTRO_DOME_CALCEL1 ME_ASTRO_DOME_CALCEL1
ME_ASTRO_DOME_CALCEL2 ME_ASTRO_DOME_CALCEL2
ME_ASTRO_DOME_CALCEL3 ME_ASTRO_DOME_CALCEL3
ME_ASTRO_DOME_CALCEL4 ME_ASTRO_DOME_CALCEL4
ME_ASTRO_DOME_CALCEL5 ME_ASTRO_DOME_CALCEL5
ME_ASTRO_DOME_HIT_GALAXY_N1 ME_ASTRO_DOME_HIT_GALAXY_N1
ME_ASTRO_DOME_HIT_GALAXY_N2 ME_ASTRO_DOME_HIT_GALAXY_N2
ME_ASTRO_DOME_HIT_GALAXY_N3 ME_ASTRO_DOME_HIT_GALAXY_N3
ME_ASTRO_DOME_HIT_GALAXY_N4 ME_ASTRO_DOME_HIT_GALAXY_N4
ME_ASTRO_DOME_HIT_GALAXY_N5 ME_ASTRO_DOME_HIT_GALAXY_N5
ME_FLIP_PANEL_ON ME_FLIP_PANEL_ON
ME_FLIP_PANEL_OFF ME_FLIP_PANEL_OFF
ME_FLIP_PANEL_ON_FIRST ME_FLIP_PANEL_ON_FIRST
ME_RALLY_COMBO_FIRST ME_RALLY_COMBO_FIRST
ME_RALLY_COMBO_SECOND ME_RALLY_COMBO_SECOND
ME_RALLY_COMBO_LAST ME_RALLY_COMBO_LAST
ME_2P_ASSIST_JUMP ME_2P_ASSIST_JUMP
ME_2P_ASSIST_JUMP_L ME_2P_ASSIST_JUMP_L
ME_2P_ASSIST_ATTACK ME_2P_ASSIST_ATTACK
ME_FLIP_PANEL_INV_OFF ME_FLIP_PANEL_INV_OFF
ME_FLIP_PANEL_INV_ON ME_FLIP_PANEL_INV_ON
ME_FLIP_PANEL_INV_OFF_FIRST ME_FLIP_PANEL_INV_OFF_FIRST
ME_MORPH_FIRE