described more of GBA VC footer/config based on how it is loaded by LgyProcess9
Line 173:
Line 173:
===Footer===
===Footer===
−
All values in the GBA VC footer are little-endian.
+
All values in the GBA VC footer and related structures are little-endian.
+
{| class="wikitable" border="1"
+
|-
+
! START
+
! SIZE
+
! DESCRIPTION
+
|-
+
| 0x00
+
| 0x4
+
| Magic '.CAA'
+
|-
+
| 0x04
+
| 0x4
+
| Must be 1
+
|-
+
| 0x08
+
| 0x4
+
| Offset to array of config descriptors
+
|-
+
| 0x0C
+
| 0x4
+
| Number of config descriptors << 4
+
|}
+
+
====Config descriptor====
+
+
{| class="wikitable" border="1"
+
|-
+
! START
+
! SIZE
+
! DESCRIPTION
+
|-
+
| 0x0
+
| 0x4
+
| If 1, then this config descriptor is used. If 0, and the following value is not 0, then the GBA VC load fails outright (causes result 0xC900464F). Otherwise, this config descriptor is skipped.
+
|-
+
| 0x4
+
| 0x4
+
| Offset to config
+
|-
+
| 0x8
+
| 0x4
+
| Size of config (unused by the function that parses this, which hardcodes the config size (0x324) to memcpy)
+
|-
+
| 0xC
+
| 0x4
+
| Padding
+
|}
+
+
====Config====
+
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
Line 195:
Line 245:
| 0x300
| 0x300
| Video LUT (black to full, rgbrgbrgb...)?,<br/>three different types of this data have been observed.
| Video LUT (black to full, rgbrgbrgb...)?,<br/>three different types of this data have been observed.