BCT (File Format): Difference between revisions

From Luma's Workshop
Jump to navigation Jump to search
(created page)
 
(added to Category)
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Category:File formats]]
'''BCT''' ('''B'''inary '''C'''ontroller Sound '''T'''able) files contain information about Wii Remote Speaker Sounds. They are linked to [[CSW (File Format)|CSW files]]. ''Super Mario Galaxy'' and ''Super Mario Galaxy 2'' each contain only one BCT file, located in <code>AudioRes/SpkRes/SpkRes.arc/bin/spktable.bct</code>.
'''BCT''' ('''B'''inary '''C'''ontroller Sound '''T'''able) files contain information about Wii Remote Speaker Sounds. They are linked to [[CSW (File Format)|CSW files]]. ''Super Mario Galaxy'' and ''Super Mario Galaxy 2'' each contain only one BCT file, located in <code>AudioRes/SpkRes/SpkRes.arc/bin/spktable.bct</code>.


Line 16: Line 18:
| 0x4
| 0x4
| UInt32 (0x4)
| UInt32 (0x4)
| Offset to parameter table
| Offset to [[BCT (File Format)#Parameter table|parameter table]]
|-
|-
| 0x8
| 0x8
| UInt32 (0x4)
| UInt32 (0x4)
| Offset to name table
| Offset to [[BCT (File Format)#Name table|name table]]
|-
|-
| 0xC
| 0xC
Line 66: Line 68:
| 0x0 + N * 4
| 0x0 + N * 4
| UInt32 (0x4)
| UInt32 (0x4)
| Offset to null-terminated Speaker Sound name
| Offset to null-terminated [[BCT (File Format)#List of Speaker Sounds|Speaker Sound name]]
|}
|}


Line 72: Line 74:


== List of Speaker Sounds ==
== List of Speaker Sounds ==
Coming before GTA 6.
{| class="wikitable sortable"
|-
! ID (SMG)
! Label (SMG)
! ID (SMG2)
! Label (SMG2)
|-
| 0
| CS_COIN
| 37
| CS_COIN
|-
| 1
| CS_STARDUST_GET
| 0
| CS_STARDUST_GET
|-
| 2
| CS_STARDUST_SHOOT
| 1
| CS_STARDUST_SHOOT
|-
| 3
| CS_STARDUST_CHARGE
|
|
|-
| 4
| CS_CONT_CONNECT
| 2
| CS_CONT_CONNECT
|-
| 5
| CS_TENNIS
|
|
|-
| 6
| CS_VOLUME_CONFIG
|
|
|-
| 7
| CS_TEST_SIN_600HZ
| 3
| CS_TEST_SIN_600HZ
|-
| 8
| CS_CLICK_OPEN
| 4
| CS_CLICK_OPEN
|-
| 9
| CS_CLICK_CLOSE
| 5
| CS_CLICK_CLOSE
|-
| 10
| CS_SPIN_HIT
| 6
| CS_SPIN_HIT
|-
| 11
| CS_FIRE_BALL
| 7
| CS_FIRE_BALL
|-
| 12
| CS_SPIN_DRIVE_LONG
| 8
| CS_SPIN_DRIVE_LONG
|-
| 13
| CS_NOTICE_USE_DPD
| 9
| CS_NOTICE_USE_DPD
|-
| 14
| CS_DPD_POINT
| 10
| CS_DPD_POINT
|-
| 15
| CS_DPD_B_TRG
|
|
|-
| 16
| CS_DPD_B_RELEASE
|
|
|-
| 17
| CS_DPD_HIT
| 11
| CS_DPD_HIT
|-
| 18
| CS_DPD_SIGN
|
|
|-
| 19
| CS_CAN_PLAY_2P
| 12
| CS_CAN_PLAY_2P
|-
| 20
| CS_IN_DISPLAY_2P
| 13
| CS_IN_DISPLAY_2P
|-
| 21
| CS_OUT_DISPLAY_2P
| 14
| CS_OUT_DISPLAY_2P
|-
| 22
| CS_DPD_PUNCH
| 15
| CS_DPD_PUNCH
|-
| 23
| CS_DPD_JUMP
| 16
| CS_DPD_JUMP
|-
| 24
| CS_DPD_JUMP_HIGH
| 17
| CS_DPD_JUMP_HIGH
|-
| 25
| CS_GET_POWER
|
|
|-
| 26
| CS_NOTICE_BUTTON
|
|
|-
| 27
| CS_PRESSED_BUTTON
| 18
| CS_PRESSED_BUTTON
|-
| 28
| CS_SPIN_BIND
| 19
| CS_SPIN_BIND
|-
| 29
| CS_SPIN_DRIVE_SHORT
| 20
| CS_SPIN_DRIVE_SHORT
|-
| 30
| CS_STAR_POWER
| 21
| CS_STAR_POWER
|-
| 31
| CS_TERESA
| 22
| CS_TERESA
|-
| 32
| CS_NO_SPIECE
| 23
| CS_NO_SPIECE
|-
| 33
| CS_FEED_SPIECE
| 24
| CS_FEED_SPIECE
|-
|
|
| 25
| CS_METRO_CLICK1
|-
|
|
| 26
| CS_METRO_CLICK2
|-
|
|
| 27
| CS_YOSHI_PULL
|-
|
|
| 28
| CS_YOSHI_EAT
|-
|
|
| 29
| CS_YOSHI_SWALLOW
|-
|
|
| 30
| CS_YOSHI_VELCH_OUT
|-
|
|
| 31
| CS_PERC_INST1
|-
|
|
| 32
| CS_PERC_INST2
|-
|
|
| 33
| CS_PERC_AUD_GOOD
|-
|
|
| 34
| CS_PERC_AUD_BAD
|-
|
|
| 35
| CS_PERC_1UP
|-
|
|
| 36
| CS_PERC_COIN
|-
|
|
| 38
| CS_PERC_TICO1
|-
|
|
| 39
| CS_PERC_TICO2
|-
|
|
| 40
| CS_CLICK_WMAP
|}

Latest revision as of 13:01, 11 February 2026


BCT (Binary Controller Sound Table) files contain information about Wii Remote Speaker Sounds. They are linked to CSW files. Super Mario Galaxy and Super Mario Galaxy 2 each contain only one BCT file, located in AudioRes/SpkRes/SpkRes.arc/bin/spktable.bct.

File specifications

Header

size: 0x10

Offset Type Description
0x0 UInt32 (0x4) Amount of sounds
0x4 UInt32 (0x4) Offset to parameter table
0x8 UInt32 (0x4) Offset to name table
0xC UInt32 (0x4) Unknown. Gets written to at runtime by SpkTable::setResource

Parameter table

size: (N + 1) * 0x8

Offset Type Description
0x0 + N * 4 UInt16 (0x2) Index N of the sound
0x2 + N * 4 UInt8 (0x1)? Unknown.
0x3 + N * 4 UInt8 (0x1)? Unknown.
0x4 + N * 4 UInt16 (0x2) Unknown. Perhaps volume?
0x6 + N * 4 Padding (0x2)

Name table

size: (N + 1) * 0x4

Offset Type Description
0x0 + N * 4 UInt32 (0x4) Offset to null-terminated Speaker Sound name

The rest of the file is padded to the nearest 0x40.

List of Speaker Sounds

ID (SMG) Label (SMG) ID (SMG2) Label (SMG2)
0 CS_COIN 37 CS_COIN
1 CS_STARDUST_GET 0 CS_STARDUST_GET
2 CS_STARDUST_SHOOT 1 CS_STARDUST_SHOOT
3 CS_STARDUST_CHARGE
4 CS_CONT_CONNECT 2 CS_CONT_CONNECT
5 CS_TENNIS
6 CS_VOLUME_CONFIG
7 CS_TEST_SIN_600HZ 3 CS_TEST_SIN_600HZ
8 CS_CLICK_OPEN 4 CS_CLICK_OPEN
9 CS_CLICK_CLOSE 5 CS_CLICK_CLOSE
10 CS_SPIN_HIT 6 CS_SPIN_HIT
11 CS_FIRE_BALL 7 CS_FIRE_BALL
12 CS_SPIN_DRIVE_LONG 8 CS_SPIN_DRIVE_LONG
13 CS_NOTICE_USE_DPD 9 CS_NOTICE_USE_DPD
14 CS_DPD_POINT 10 CS_DPD_POINT
15 CS_DPD_B_TRG
16 CS_DPD_B_RELEASE
17 CS_DPD_HIT 11 CS_DPD_HIT
18 CS_DPD_SIGN
19 CS_CAN_PLAY_2P 12 CS_CAN_PLAY_2P
20 CS_IN_DISPLAY_2P 13 CS_IN_DISPLAY_2P
21 CS_OUT_DISPLAY_2P 14 CS_OUT_DISPLAY_2P
22 CS_DPD_PUNCH 15 CS_DPD_PUNCH
23 CS_DPD_JUMP 16 CS_DPD_JUMP
24 CS_DPD_JUMP_HIGH 17 CS_DPD_JUMP_HIGH
25 CS_GET_POWER
26 CS_NOTICE_BUTTON
27 CS_PRESSED_BUTTON 18 CS_PRESSED_BUTTON
28 CS_SPIN_BIND 19 CS_SPIN_BIND
29 CS_SPIN_DRIVE_SHORT 20 CS_SPIN_DRIVE_SHORT
30 CS_STAR_POWER 21 CS_STAR_POWER
31 CS_TERESA 22 CS_TERESA
32 CS_NO_SPIECE 23 CS_NO_SPIECE
33 CS_FEED_SPIECE 24 CS_FEED_SPIECE
25 CS_METRO_CLICK1
26 CS_METRO_CLICK2
27 CS_YOSHI_PULL
28 CS_YOSHI_EAT
29 CS_YOSHI_SWALLOW
30 CS_YOSHI_VELCH_OUT
31 CS_PERC_INST1
32 CS_PERC_INST2
33 CS_PERC_AUD_GOOD
34 CS_PERC_AUD_BAD
35 CS_PERC_1UP
36 CS_PERC_COIN
38 CS_PERC_TICO1
39 CS_PERC_TICO2
40 CS_CLICK_WMAP