In memory of Ben “bushing” Byer, who passed away on Monday, February 8th, 2016.

Difference between revisions of "/shared2/sys/SYSCONF"

From WiiBrew
< /shared2‎ | sys
Jump to navigation Jump to search
(Updated info, removed duplicate, added Motion Plus flag)
(Move *ARRAY length info into the "Types" table)
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:

Revision as of 19:31, 29 July 2017

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.

Last 4 bytes of the file read "SCed".

Conventions for adding or removing settings to the file are currently unknown, but shouldn't be too hard to determine--although that's not necessarily a useful function.

Types

Name Value Size Note
BIGARRAY 1 varies 2 bytes of length, followed by $n bytes of data
SMALLARRAY 2 varies 1 byte of length, followed by $n bytes of data
BYTE 3 1 byte
SHORT 4 2 bytes
LONG 5 4 bytes
LONGLONG 6 8 bytes
BOOL 7 1 byte 0 is false, anything else is true (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:

BT Settings

Name Type Size Values Description
BT.DINF BIGARRAY 0x460 Bluetooth IDs List of Wiimotes "synced" to the system
BT.CDIF BIGARRAY ? ? {{{5}}}
BT.SENS LONG 4 0-4? Wiimote sensitivity setting
BT.BAR BYTE 1 0,1 Sensor bar position (0:bottom)
BT.SPKV BYTE 1 varies Wiimote speaker volume
BT.MOT BYTE 1 0,1 Wiimote motor on/off

IPL Settings

Name Type Size Values Description
IPL.IDL SMALLARRAY 2 0,1;0,1 Shutdown mode and idle LED mode
IPL.UPT BYTE 1 2,? Update Type
IPL.NIK SMALLARRAY 0x16 utf16be string, including trailing NUL Console Nickname
IPL.AR BYTE 1 0,1 Aspect ratio setting. 0: 4:3 1: 16:9
IPL.SSV BYTE 1 0,1 Screen Saver off/on (burn-in reduction)
IPL.LNG BYTE 1 0,1 System Language, see conf.c for some values
IPL.SADR BIGARRAY 0x1007 lots "Simple Address" Contains some region info
IPL.CB LONG 4 ?? Counter Bias -- difference between RTC and local time, in seconds
IPL.PC SMALLARRAY 0x50 string Parental Control password/setting
IPL.CD BOOL 1 bool Config Done flag -- has initial setup been performed?
IPL.CD2 BOOL 1 bool Config2 Done flag -- has network setup been performed?
IPL.EULA BOOL 1 bool EULA Done flag -- has EULA been acknowledged?
IPL.PGS BYTE 1 0,1 Use Progressive Scan
IPL.E60 BYTE 1 0,1 Use EuRGB60 (PAL6)
IPL.SND BYTE 1 0-2 Sound setting
IPL.DH BYTE 1 ? Display Offset (Horiz)
IPL.INC LONG 4 ? "Installed Channel App Count"
IPL.ARN ? ? ? ?
IPL.FRC LONG 4 ? "Free Channel App Count"

IPL.SADR values: Offset 0 is a Country Code and offset 1 seems to be a more localized region code.

Misc Settings

Name Type Size Values Description
DEV.BTM BYTE 1 0 Production, 1 Development Bootmode (used for NDEV)
DEV.VIM BYTE 1 ? ?
DEV.CTC BYTE 1 0 ?
DEV.DSM BYTE 1 0 Disabled, 1 Enabled, 2 Debug Drive saving (used for NDEV)
DVD.CNF ? ? ? ?
WWW.RST BYTE 1 ? WWW Restriction
NET.CNF ? ? ? ?
NET.CFG ? ? ? ?
NET.CTPC LONG 4 ? Net Content Restrictions ("Content Parental Control"?)
NET.WCFG LONG 4 ? WC24 Configuration flags
MPLS.MOVIE BYTE 1 0 Watched, 1 Not Watched Wii Motion Plus Tutorial Movie