SD:/private/wii/loc.dat: Difference between revisions

From WiiBrew
< SD:
Jump to navigation Jump to search
Galaxy (talk | contribs)
m moved Main Page/loc.dat to Loc.dat: Preparing integration into content.bin info.
SquidMan (talk | contribs)
Added C structs, and did some cleaning
Line 11: Line 11:
| 0x0
| 0x0
| 0x4
| 0x4
| Header "sdal"  
| Magic - "sdal"  
|-
|-
| 0x4
| 0x4
Line 19: Line 19:
| 0x14
| 0x14
| 0x3C0
| 0x3C0
| Channel TitleID corresponding to slots 1-240 on the SDMenu. (Each slot is 4 bytes.  Empty slot indicated by 0x00000000.)
| List of channels on the SDMenu. (Each slot is 4 bytes.  Empty slot indicated by 0x00000000.)
|-
|-
| 0x3D4
| 0x3D4
Line 26: Line 26:
|}
|}


=== Creating The File ===
Here's some C structures:
<pre>
typedef struct
{
char tid[4]; // The lower 4 bytes of the channels Title ID.
} SDList;
 
typedef struct
{
char magic[4]; // The Magic. Always `sdal'
u8 md5[0x10]; // MD5 sum. Pad with MD5-Blanker.
SDList list[240]; // The entries. Same order as on the menu.
u8 padding[12]; // Padding with 0's.
} Locdat;
</pre>
 
Credit to Galaxy| for this finding.

Revision as of 03:56, 30 March 2009

Layout

The general layout of this file is as follows.

Offset Length Description
0x0 0x4 Magic - "sdal"
0x4 0x10 File MD5 Sum (padded with MD5-blanker before hash calculation)
0x14 0x3C0 List of channels on the SDMenu. (Each slot is 4 bytes. Empty slot indicated by 0x00000000.)
0x3D4 0xC Padded with 0s.

Here's some C structures:

typedef struct
{
	char	tid[4];			// The lower 4 bytes of the channels Title ID.
} SDList;

typedef struct
{
	char	magic[4];		// The Magic. Always `sdal'
	u8	md5[0x10];		// MD5 sum. Pad with MD5-Blanker.
	SDList	list[240];		// The entries. Same order as on the menu.
	u8	padding[12];		// Padding with 0's.
} Locdat;

Credit to Galaxy| for this finding.