Changes

Jump to navigation Jump to search
1,504 bytes added ,  17:59, 4 September 2008
New page: {{Infobox channel | title = Forecast Channel | image = 200px | desc = Weather informations | type = General channel | version =...
{{Infobox channel
| title = Forecast Channel
| image = [[Image:Forecast Channel.png|200px]]
| desc = Weather informations
| type = General channel
| version =
| peripherals = {{Wiimote1}} {{Internet}}
}}

The Forecast channel download data packages from Nintendo servers via plain http connection.

Some examples:


http://weather.wapp.wii.com/1/076/short.bin<br>
http://weather.wapp.wii.com/1/076/forecast.bin<br>

http://news.wapp.wii.com/ formerly displayed a Red Hat Enterprise Linux Test Page. It now displays a 403: Forbidden error.

File structure:

<pre>
$0000 - $003F: padding (00)
$0040 - $013F: rsa encrypted sha-1 signature of rest of the file
$0140 - $0143: header
$0144 - .....: compressed data
</pre>

The compression is very simple:
# Read one byte
# For each bit of the byte, msb-to-lsb,
#* if 0, copy one byte to the output
#* if 1, read 16 bits msb first in v, copy n bytes at offset m from the end of the output, n=3+(v>>12), m=v & fff

Quick and very dirty C code:
<source lang="c">
i = 0x144;
j = 0;
while(i < size) {
int k;
int v = data[i++];
for(k=0; k<8; k++)
if(!(v & (1 << (7-k)))) {
result_data[j++] = data[i++];
} else {
int vv = (data[i] << 8) | data[i+1];
int nb = 3+(vv >> 12);
int off = (vv & 0xfff);
int l;
i+=2;
for(l=0; l<nb; l++) {
result_data[j] = result_data[j-off-1];
j++;
}
}
}
</source>
[[Category:Software]]
872

edits

Navigation menu