Difference between revisions of "BREFT (File Format)"

From Custom Mario Kart
Jump to navigation Jump to search
(→‎File Format: #OilAlert)
 
Line 7: Line 7:
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Offset !! Size !! Type !! Description
+
! Offset !! Type !! Description
 
|-
 
|-
| 0x00 || 0x04 || UInt32 || {{Unknown-left|'''Unknown'''.}} Null for all 1200 BREFT files in [[Mario Kart Wii]].
+
| 0x00 || UInt32 || {{Unknown-left|Unused. Offset to absolute path of intermediate file.}}
 
|-
 
|-
| 0x04 || 0x02 || UInt16 || '''Width''' of the image in pixels (values in the range 0x8-0x100).
+
| 0x04 || 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).
+
| 0x06 ||UInt16 || '''Height''' of the image in pixels (values in the range 0x10-0x100).
 
|-
 
|-
| 0x08 || 0x04 || UInt32 || '''I''' = size of image data.
+
| 0x08 || UInt32 || Size of image data.
 
|-
 
|-
| 0x0C || 0x01 || Byte || '''[[Image Formats#Image Formats|Image format]]''' of the image.
+
| 0x0C || 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
 
 
|-
 
|-
| 0x0D || 0x01 || Byte || '''[[Image Formats#Palette Formats|Palette format]]''' of the image.
+
| 0x0D || Byte || '''[[Image Formats#Palette Formats|Palette format]]''' of the image.
 
|-
 
|-
| 0x0E || 0x02 || UInt16 || Number of '''[[Image Formats#Palette Formats|palette entries]]'''.
+
| 0x0E || UInt16 || Number of '''[[Image Formats#Palette Formats|palette entries]]'''.
 
|-
 
|-
| 0x10 || 0x04 || UInt32 || '''P''' = Size of the '''[[Image Formats#Palette Formats|palette data]]'''.
+
| 0x10 || UInt32 || 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). Other files have a value of 0.
+
| 0x14 || Byte || Total number of mipmaps.
 
|-
 
|-
| 0x15 || 0x01 || Byte || Mipmap min filter.
+
| 0x15 || Byte[3] || {{Unknown-left|Reserved.}}
 
|-
 
|-
| 0x16 || 0x01 || Byte || Mipmap mag filter.
+
| 0x18 || UInt32 || Texture data offset.
 
|-
 
|-
| 0x17 || 0x01 || Byte || {{Unknown-left|'''Unknown'''. 0 for all 1200 BREFT files in [[Mario Kart Wii]].}}
+
| 0x1C || UInt32 || Palette data offset.
 
|-
 
|-
| 0x18 || 0x04 || Float || LOD bias.
+
| colspan=3 {{Unknown|End of sub file}}
|-
 
| 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}}
 
 
|}
 
|}
  

Latest revision as of 12:35, 5 May 2023

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 Type Description
0x00 UInt32 Unused. Offset to absolute path of intermediate file.
0x04 UInt16 Width of the image in pixels (values in the range 0x8-0x100).
0x06 UInt16 Height of the image in pixels (values in the range 0x10-0x100).
0x08 UInt32 Size of image data.
0x0C Byte Image format of the image.
0x0D Byte Palette format of the image.
0x0E UInt16 Number of palette entries.
0x10 UInt32 Size of the palette data.
0x14 Byte Total number of mipmaps.
0x15 Byte[3] Reserved.
0x18 UInt32 Texture data offset.
0x1C UInt32 Palette data offset.
End of sub file

Image Formats

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: