Line 1:
Line 1:
The SYSCONF contains many Wii system settings.
The SYSCONF contains many Wii system settings.
−
The format of the file is fairly simple. Its size is 0x4000, and it contains a header that reads "SCv0", followed by the number of settings in the file (be u16), and then a list of offsets of each setting (be u16). Each setting (aka "Item") contains first a u8, specifying the type of the value, and the length of the name. The low-order 5 bits specify the length of the name, minus one. The high-order three bits specify the type of the value, as given by the table below. This is followed by a name, in ASCII, then a value. In the case of a BIGARRAY, the value begins with a be u16 specifying the length of the data, in bytes, which follows. In the case of a SMALLARRAY, the value begins with a u8 specifying the length.
+
The format of the file is fairly simple. Its size is 0x4000, and it contains a header that reads "SCv0", followed by the number of settings in the file (be u16), and then a list of offsets of each setting (be u16). Each setting (aka "Item") contains first a u8, specifying the type of the value, and the length of the name. The low-order 5 bits specify the length of the name, minus one. The high-order three bits specify the type of the value, as given by the table below. This is followed by a name, in ASCII, then a value.
Last 4 bytes of the file read "SCed".
Last 4 bytes of the file read "SCed".
Line 10:
Line 10:
{| class="wikitable"
{| class="wikitable"
|-
|-
−
! Name
+
! Name
−
! Value
+
! Value
+
! Size
+
! Note
|-
|-
−
| BIGARRAY
+
| BIGARRAY
−
| 1
+
| 1
+
| varies
+
| 2 bytes of length, followed by <code>$n</code> bytes of data
|-
|-
−
| SMALLARRAY
+
| SMALLARRAY
−
| 2
+
| 2
+
| varies
+
| 1 byte of length, followed by <code>$n</code> bytes of data
|-
|-
−
| BYTE
+
| BYTE
−
| 3
+
| 3
+
| 1 byte
+
|
|-
|-
−
| SHORT
+
| SHORT
−
| 4
+
| 4
+
| 2 bytes
+
|
|-
|-
−
| LONG
+
| LONG
−
| 5
+
| 5
+
| 4 bytes
+
|
|-
|-
| LONGLONG
| LONGLONG
−
| 6
+
| 6
+
| 8 bytes
+
|
|-
|-
−
| BOOL
+
| BOOL
−
| 7
+
| 7
+
| 1 byte
+
| 0 is <code>false</code>, anything else is <code>true</code> (most commonly 1)
|}
|}
+
+
Note that both BIGARRAY and SMALLARRAY store the length minus one in the beginning. A length of 0x06 means that 7 bytes of data follow. The name "ARRAY" need not indicate the actual content type; most settings store an application defined structure in them.
Some settings from the file:
Some settings from the file: