Difference between revisions of "CBMD"

From 3dbrew
Jump to navigation Jump to search
(seperate CGFX for different regions/languages is already mentioned here.)
(Moved the BCWAV info from the BCWAV page to here. (As it only applies to BCWAVs found in banners.))
 
(6 intermediate revisions by 4 users not shown)
Line 2: Line 2:
 
'''CBMD - CTR Banner Model Data'''
 
'''CBMD - CTR Banner Model Data'''
  
This page describes the format used for banners' models. These are stored in [[CXI]] ExeFS:/banner and optionally in [[extdata]] exbanner.
+
This page describes the format used for banners' models. These are stored in [[NCCH#CXI|CXI]] ExeFS:/banner and optionally in [[extdata]] exbanner.
CBMD is a container file for CGFX blocks. This is used for banners of titles you see in the home menu. BNR used for the app banners in the CXI/exbanner is the same as CBMD with CWAV at the end.
+
CBMD is a container file for [[CGFX]] blocks. This is used for banners of titles you see in the home menu. BNR used for the app banners in the CXI/exbanner is the same as CBMD with CWAV at the end.
  
 
== CBMD Header ==
 
== CBMD Header ==
Line 22: Line 22:
 
| 0x8
 
| 0x8
 
| 0x4
 
| 0x4
| Offset for common CGFX
+
| Offset for common [[CGFX]]
 
|-
 
|-
 
| 0xc
 
| 0xc
 
| 0x34
 
| 0x34
| Optional offsets for region/language specific CGFX
+
| Optional offsets for region/language specific [[CGFX]]
 
|-
 
|-
 
| 0x40
 
| 0x40
Line 34: Line 34:
 
| 0x84
 
| 0x84
 
| 0x4
 
| 0x4
| CBMD Size
+
| [[BCWAV]] offset
 
|}
 
|}
  
The common CGFX is used if the CGFX offset for the system region/language is zero. Those optional offsets can be used in extdata exbanner, but separate CBMD banner files for each region/language can be used as well.
+
The common [[CGFX]] is used if the CGFX offset for the system region/language is zero. Those optional offsets can be used in extdata exbanner, but separate CBMD banner files for each region/language can be used as well.
  
 
=== Indexes for CGFX offset array ===
 
=== Indexes for CGFX offset array ===
Line 87: Line 87:
 
== CGFX ==
 
== CGFX ==
  
CGFX are compressed using LZ11. For CXI banner CGFX, the decompressed size must be no larger than 0x80000.
+
[[CGFX]] are compressed using LZ11. For CXI banner CGFX, the decompressed size must be no larger than 0x80000.
  
Graphics containers. Contains: 3D Models, Shaders, Objects, Materials, Textures, etc.
+
Graphics containers. Contains: 3D Models, Shaders, Objects, Materials, Textures, etc. See [[CGFX]] for more information.
 +
 
 +
== BCWAV ==
 +
 
 +
The included [[BCWAV]] total channels must be 2, and the length of the audio must be 3 seconds or less, otherwise the sound will play incorrectly (beeping/clicking) or the model may fail to load.

Latest revision as of 14:33, 20 December 2020

CBMD - CTR Banner Model Data

This page describes the format used for banners' models. These are stored in CXI ExeFS:/banner and optionally in extdata exbanner. CBMD is a container file for CGFX blocks. This is used for banners of titles you see in the home menu. BNR used for the app banners in the CXI/exbanner is the same as CBMD with CWAV at the end.

CBMD Header[edit]

Offset Length Description
0x0 0x4 Magic "CBMD"
0x4 0x4 Zero
0x8 0x4 Offset for common CGFX
0xc 0x34 Optional offsets for region/language specific CGFX
0x40 0x44 Padding?
0x84 0x4 BCWAV offset

The common CGFX is used if the CGFX offset for the system region/language is zero. Those optional offsets can be used in extdata exbanner, but separate CBMD banner files for each region/language can be used as well.

Indexes for CGFX offset array[edit]

Index Description
0 EUR-English
1 EUR-French
2 EUR-German
3 EUR-Italian
4 EUR-Spanish
5 EUR-Dutch
6 EUR-Portuguese
7 EUR-Russian
8 JPN-Japanese
9 USA-English
10 USA-French
11 USA-Spanish
12 USA-Portuguese

CGFX[edit]

CGFX are compressed using LZ11. For CXI banner CGFX, the decompressed size must be no larger than 0x80000.

Graphics containers. Contains: 3D Models, Shaders, Objects, Materials, Textures, etc. See CGFX for more information.

BCWAV[edit]

The included BCWAV total channels must be 2, and the length of the audio must be 3 seconds or less, otherwise the sound will play incorrectly (beeping/clicking) or the model may fail to load.