Welcome! Log In Create A New Profile

Advanced

nwc24dl.bin

Posted by whodares 
nwc24dl.bin
September 25, 2008 10:49PM
This file contains a list of URLs that WiiConnect24 downloads data from, and can be found in /shared2/wc24

File header looks something like this
struct WC24File
{
  char magic_word[4], // 'WcDl'
  int unknown_value_1,
  int unknown_value_2,
  int unknown_value_3,
  short unknown_value_4,
  short wc24_header_file_offset,
  short wc24_record_count,
  short unknown_value_5
}

wc24_header_file_offset is big endian, and needs to be shifted left 4 bits to get the true address. The space between file header and wc24 record headers is padded with 0x00 bytes


At offset 00000080 there is the first of a batch of header records. The structure of these is something like
struct WC24Header
{
  char game_title[4],
  u32 memory_address_1,
  u32 memory_address_2,
  u8 record_pointer,
  u8 padding[3]
}

My first record has the following data
{ 'HAEA', 0x0135F25A, 0x0135F209, 0x80, { 0x00, 0x00, 0x00 } }

If you shift the record_pointer 4 bits to the right, you get 0x00000800, which is a point inside the file which contains a more detailed record

Interestingly, in my list of headers, I get two HAEA records, then a blank record, then two HAFP records, followed by another two HAEA records, then another blank, then RMCP, HABA, then two final RMCP records

struct WC24Record
{
  short record_index,
  short unknown_value_1,
  int unknown_value_2,
  char game_title[4],
  int unknown_value_3,
  int unknown_value_4,
  int unknown_value_5,
  int unknown_value_6,
  int unknown_value_7,
  int unknown_value_8,
  int unknown_value_9,
  int unknown_value_10,
  int unknown_value_11,
  int unknown_value_12,
  char unknown_value_13[128],
  char wc24_main_url[236],
  char wc24_sub_url_files[96],
}

record_index starts with the value of 0x0000, and counts up each record

unknown_value_1 = 0xFF00 if the record is empty (big endian)

unknown_value_2 always seems to be 0

unknown_value_4 seems to be a some sort of application id, sometimes the same as game_title, but on the HAEA entries, they are 0x00000002 (big endian)

unknown_value_5 could actually be a part of unknown_value_4. When my game title is HAFP, unknown_value_4 and unknown_value_5 combine to create a text string of 'HAFP01', followed by two 0x00's to fill the space. Might just be coincidental though.

unknown_value_7 looks like a relative memory address (big endian), could be wrong, but they do stay consistant between records with the same game ID

unknown_value_8 to unknown_value_11 are always 0x00000000

unknown_value_12 looks like another memory address

unknown_value_13 looks like string space, but is always blank in all of my records

wc24_main_url seems an odd length, so there maybe another smaller string tucked in at the end

wc24_sub_url_files is a bit confusing, it might be an array of filesnames to use with the wc24_main_url. However, judging from the data, it might actually be for a single filename, just keeps getting overwritten with different values


I know there's a lot of unknowns here, but there might be some useful information. I'll update as I find out...



Edited 1 time(s). Last edit at 09/25/2008 11:36PM by whodares.
Re: nwc24dl.bin
November 10, 2008 01:46AM
where does it store the downloaded files ?
Re: nwc24dl.bin
November 10, 2008 01:49AM
I have some vague memory that it stores them inside the data directory of the title that is associated with the download.
Sorry, only registered users may post in this forum.

Click here to login