Difference between revisions of "BREFT (File Format)"
Jump to navigation
Jump to search
(then find a solution that fix the issue (prohibit a break). width=5% works only for medium wide screen and is NOT the solution.) |
|||
Line 3: | Line 3: | ||
== File Format == | == File Format == | ||
− | A BREFT sub file starts with a header of 32 bytes followed by the | + | A BREFT sub file starts with a header of 32 bytes followed by the image data. The sub file item explained [[BREFF and BREFT (File Format)#Sub File Item|here]] points to this header. The size of the sub file item only counts the size of the image data. |
{| class="wikitable" | {| class="wikitable" | ||
Line 11: | Line 11: | ||
| 0x00 || 0x04 || UInt32 || {{Unknown-left|'''Unknown'''.}} Null for all 1200 BREFT files in [[Mario Kart Wii]]. | | 0x00 || 0x04 || UInt32 || {{Unknown-left|'''Unknown'''.}} Null for all 1200 BREFT files in [[Mario Kart Wii]]. | ||
|- | |- | ||
− | | 0x04 || 0x02 || UInt16 || Width of | + | | 0x04 || 0x02 || UInt16 || '''Width''' of the image in pixels (values in the range 0x8-0x100). |
|- | |- | ||
− | | 0x06 || 0x02 || UInt16 || Height of | + | | 0x06 || 0x02 || UInt16 || '''Height''' of the image in pixels (values in the range 0x10-0x100). |
|- | |- | ||
− | | 0x08 || 0x04 || UInt32 || '''N''' = size of | + | | 0x08 || 0x04 || UInt32 || '''N''' = size of image data. |
|- | |- | ||
− | | 0x0C || 0x01 || Byte || Image format of | + | | 0x0C || 0x01 || Byte || '''[[Image Formats#Image Formats|Image format]]''' of the image. |
Found in MKW: 7* 0x00, 675* 0x01, 462* 0x03, 5* 0x04, 25* 0x05, 2* 0x06, 24* 0x0E | Found in MKW: 7* 0x00, 675* 0x01, 462* 0x03, 5* 0x04, 25* 0x05, 2* 0x06, 24* 0x0E | ||
|- | |- | ||
− | | 0x0D || | + | | 0x0D || 0x01 || Byte || '''[[Image Formats#Palette Formats|Palette format]]''' of the image. |
|- | |- | ||
− | | | + | | 0x0E || 0x02 || UInt16 || Number of '''[[Image Formats#Palette Formats|palette entries]]'''. |
|- | |- | ||
− | | | + | | 0x10 || 0x04 || UInt32 || '''I''' = Size of the '''[[Image Formats#Palette Formats|palette data]]'''. |
|- | |- | ||
− | | | + | | 0x14 || 0x01 || Byte || '''0''' or '''total number of images''' (main image + mipmaps). In [[Mario Kart Wii]] only 2 files have the value of 2 here (factory_course.szs and _d variant, effect/Alarm/rk_alarm.breft, alarmMip). For all other files the value is 0. |
|- | |- | ||
− | | | + | | 0x15 || 0x01 || Byte || Mipmap min filter. |
|- | |- | ||
− | | | + | | 0x16 || 0x01 || Byte || Mipmap mag filter. |
|- | |- | ||
− | | | + | | 0x17 || 0x01 || Byte || {{Unknown-left|'''Unknown'''. 0 for all 1200 BREFT files in [[Mario Kart Wii]].}} |
|- | |- | ||
− | | 0x20 + ''' | + | | 0x18 || 0x04 || Float || LOD bias. |
+ | |- | ||
+ | | 0x1C || 0x04 || UInt32 || {{Unknown-left|'''Unknown'''. 0 for all 1200 BREFT files in [[Mario Kart Wii]]..}} | ||
+ | |- | ||
+ | | 0x20 || '''I''' || Byte['''I'''] || '''Image data'''. | ||
+ | |- | ||
+ | | 0x20 + '''I''' || '''P''' || Byte['''P'''] || '''Palette data''', if it exists. | ||
+ | |- | ||
+ | | colspan=2 | 0x20 + '''I''' + '''P''' || colspan=2 {{Unknown|End of sub file}} | ||
|} | |} | ||
Revision as of 17:50, 9 March 2017
Introduction
Read BREFF and BREFT (File Format) for an introduction.
File Format
A BREFT sub file starts with a header of 32 bytes followed by the image data. The sub file item explained here points to this header. The size of the sub file item only counts the size of the image data.
Offset | Size | Type | Description |
---|---|---|---|
0x00 | 0x04 | UInt32 | Unknown. Null for all 1200 BREFT files in Mario Kart Wii. |
0x04 | 0x02 | UInt16 | Width of the image in pixels (values in the range 0x8-0x100). |
0x06 | 0x02 | UInt16 | Height of the image in pixels (values in the range 0x10-0x100). |
0x08 | 0x04 | UInt32 | N = size of image data. |
0x0C | 0x01 | Byte | Image format of the image.
Found in MKW: 7* 0x00, 675* 0x01, 462* 0x03, 5* 0x04, 25* 0x05, 2* 0x06, 24* 0x0E |
0x0D | 0x01 | Byte | Palette format of the image. |
0x0E | 0x02 | UInt16 | Number of palette entries. |
0x10 | 0x04 | UInt32 | I = Size of the palette data. |
0x14 | 0x01 | Byte | 0 or total number of images (main image + mipmaps). In Mario Kart Wii only 2 files have the value of 2 here (factory_course.szs and _d variant, effect/Alarm/rk_alarm.breft, alarmMip). For all other files the value is 0. |
0x15 | 0x01 | Byte | Mipmap min filter. |
0x16 | 0x01 | Byte | Mipmap mag filter. |
0x17 | 0x01 | Byte | Unknown. 0 for all 1200 BREFT files in Mario Kart Wii. |
0x18 | 0x04 | Float | LOD bias. |
0x1C | 0x04 | UInt32 | Unknown. 0 for all 1200 BREFT files in Mario Kart Wii.. |
0x20 | I | Byte[I] | Image data. |
0x20 + I | P | Byte[P] | Palette data, if it exists. |
0x20 + I + P | End of sub file |
Image Formats
ID | Name | Bits per pixel | Block width | Block height | Block size | Type |
---|---|---|---|---|---|---|
0x00 | I4 | 4 | 8 | 8 | 32 bytes | Gray |
0x01 | I8 | 8 | 8 | 4 | 32 bytes | Gray |
0x02 | IA4 | 8 | 8 | 4 | 32 bytes | Gray + Alpha |
0x03 | IA8 | 16 | 4 | 4 | 32 bytes | Gray + Alpha |
0x04 | RGB565 | 16 | 4 | 4 | 32 bytes | Color |
0x05 | RGB5A3 | 16 | 4 | 4 | 32 bytes | Color + Alpha |
0x06 | RGBA32 (RGBA8) | 32 | 4 | 4 | 64 bytes | Color + Alpha |
0x08 | C4 (CI4) | 4 | 8 | 8 | 32 bytes | Palette (IA8, RGB565, RGB5A3) |
0x09 | C8 (CI8) | 8 | 8 | 4 | 32 bytes | Palette (IA8, RGB565, RGB5A3) |
0x0A | C14X2 (CI14x2) | 16 | 4 | 4 | 32 bytes | Palette (IA8, RGB565, RGB5A3) |
0x0E | CMPR | 4 | 8 | 8 | 32 bytes | Color + optional Alpha (compressed) |
Tools
The following tools can handle BREFT files:
- BrawlBox, by Kryal & BlackJax
- SZS Modifier, by MrBean35000vr and Chadderz
- Wiimms SZS Tools, by Wiimm