IBNK: Difference between revisions

From Luma's Workshop
Jump to navigation Jump to search
(Created page with "IBNK page. Feel free to overwrite with accurate information == IBNK Header == {| class="wikitable" |- ! Offset ! Type ! Description ! Notes |- | 0x00 | String[4] | IBNK (0x49424E4B) | |- | 0x04 | UInt32 | File size minus 0x08 | |- | 0x08 | Byte[3] | ? | |- | 0x0B | UInt8 | '''Bank ID''' | |- | 0x0C | Byte[3] | ? | |- | 0x0F | Byte[1] | ? | |- | 0x10 | Byte[16] | Padding? | |} == INST Section == {| class="wikitable" |- ! Offset ! Type ! Description ! Notes |- |...")
 
(→‎IBNK Header: Fully documented header)
 
Line 3: Line 3:
== IBNK Header ==
== IBNK Header ==
{| class="wikitable"  
{| class="wikitable"  
! Offset !! Type !! Description !! Notes
|-
|-
! Offset
| 0x00 || String[4] || IBNK (0x49424E4B) || |
! Type
! Description
! Notes
|-
|-
| 0x00
| 0x04 || UInt32 || File size minus 0x08 || |  
| String[4]
| IBNK (0x49424E4B)
|  
|-
|-
| 0x04
| 0x08 || Int32 || Bank ID || |  
| UInt32
| File size minus 0x08
|  
|-
|-
| 0x08
| 0x0C || Int32 || Bank Version || 0x00000000 = Bank Version 0<br/>0x00000001 = Bank Version 1<br/>Both are supported in ''Super Mario Galaxy'' & ''Super Mario Galaxy 2''
| Byte[3]
| ?
|  
|-
|-
| 0x0B
| 0x10 || Byte[16] || Padding? || All Zeros |
| UInt8
| '''Bank ID'''
|  
|-
| 0x0C
| Byte[3]
| ?
|
|-
| 0x0F
| Byte[1]
| ?
|
|-
| 0x10
| Byte[16]
| Padding?
|  
|}
|}



Latest revision as of 16:25, 19 September 2024

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.