IBNK: Difference between revisions
Jump to navigation
Jump to search
Super Hackio (talk | contribs) (→IBNK Header: Fully documented header) |
Louis Miles (talk | contribs) m (→Tools) |
||
(One intermediate revision by the same user not shown) | |||
Line 355: | Line 355: | ||
| Many entries can be found holding no offset (0x00000000). The position of an entry in this list defines the '''Program ID'''. It starts counting at 0. | | Many entries can be found holding no offset (0x00000000). The position of an entry in this list defines the '''Program ID'''. It starts counting at 0. | ||
|} | |} | ||
==Tools== | |||
[https://github.com/XAYRGA/ibnktool ibnktool ] (edits IBNK)<br> | |||
[https://github.com/vgmtrans/vgmtrans VGMTrans] (analyses and converts IBNK to SF2. Drag and drop BAA onto the window.) |
Latest revision as of 17:30, 6 June 2025
IBNK page. Feel free to overwrite with accurate information
IBNK Header
Offset | Type | Description | Notes |
---|---|---|---|
0x00 | String[4] | IBNK (0x49424E4B) | |
0x04 | UInt32 | File size minus 0x08 | |
0x08 | Int32 | Bank ID | |
0x0C | Int32 | Bank Version | 0x00000000 = Bank Version 0 0x00000001 = Bank Version 1 Both are supported in Super Mario Galaxy & Super Mario Galaxy 2 |
0x10 | Byte[16] | Padding? |
INST Section
Offset | Type | Description | Notes |
---|---|---|---|
0x00 | String[4] | INST (0x494E5354) | |
0x04 | UInt32 | Section size minus 0x08 | |
0x08 | UInt32 | Amount N of Inst sections | |
0x0C | Start of first Inst section |
Inst Section
Offset | Type | Description | Notes |
---|---|---|---|
0x00 | String[4] | Inst (0x496E7374) | |
0x04 | UInt32 | ? | |
0x08 | UInt32 | ? | |
0x0C | UInt32 | ? | |
0x10 | UInt32 | Amount N of Keyboard sections | |
0x14 | Start of first Keyboard section | ||
0x14+N*0x18 | Float | Keyboard global volume | |
0x14+N*0x18+0x04 | Float | Keyboard global pitch |
Keyboard section (size 0x18)
Offset | Type | Description | Notes |
---|---|---|---|
0x00 | UInt8 | Highest key of current keyboard | Cannot be higher than 7F. Lowest key of next keyboard (if exists) is this value + 0x01. |
0x01 | Byte[6] | ? | |
0x07 | Byte[1] | ? | |
0x08 | UInt8 | Velocity | |
0x09 | Byte[3] | ? | |
0x0C | UInt16 | Bank ID | |
0x0E | UInt16 | Wave ID | |
0x10 | Float | Volume | |
0x14 | Float | Pitch |
PMAP Section
Offset | Type | Description | Notes |
---|---|---|---|
0x00 | String[4] | PMAP (0x504D4150) | |
0x04 | UInt32 | Section size minus 0x08 | |
0x08 | UInt32 | Amount N of Pmap sections | |
0x0C | Start of first Inst section |
Pmap Section (Size 0x28)
Offset | Type | Description | Notes |
---|---|---|---|
0x00 | String[4] | Pmap (0x506D6170) | |
0x04 | Float | ? | |
0x08 | Float | ? | |
0x0C | Float | ? | |
0x10 | Byte[7] | ? | |
0x17 | Byte[1] | ? | |
0x18 | UInt8 | Velocity | |
0x19 | Byte[3] | ? | |
0x1C | UInt16 | Bank ID | |
0x1E | UInt16 | Wave ID | |
0x20 | Float | ? | |
0x24 | Float | ? |
PERC Section
Offset | Type | Description | Notes |
---|---|---|---|
0x00 | String[4] | PERC (0x50455243) | |
0x04 | UInt32 | Section size minus 0x08 | |
0x08 | UInt32 | Amount N of Perc sections | |
0x0C | Start of first Inst section |
Perc Section
Offset | Type | Description | Notes |
---|---|---|---|
0x00 | String[4] | Perc (0x50657263) | |
0x04 | UInt32 | Amount N of entries | |
0x08 | Start of entries |
Perc entry
Offset | Type | Description | Notes |
---|---|---|---|
0x00 | UInt32 | Offset to Pmap section relative to file beginning. | Many entries can be found holding no offset (0x00000000). |
LIST Section
Offset | Type | Description | Notes |
---|---|---|---|
0x00 | String[4] | LIST (0x4C495354) | |
0x04 | UInt32 | Section size minus 0x08 | |
0x08 | UInt32 | Amount N of entries | |
0x0C | Start of entries |
List entry
Offset | Type | Description | Notes |
---|---|---|---|
0x00 | UInt32 | Offset to Inst or Perc section relative to file beginning. | Many entries can be found holding no offset (0x00000000). The position of an entry in this list defines the Program ID. It starts counting at 0. |
Tools
ibnktool (edits IBNK)
VGMTrans (analyses and converts IBNK to SF2. Drag and drop BAA onto the window.)