Difference between revisions of "News Channel"
Jump to navigation
Jump to search
Synkronizer (talk | contribs) m (Updated information.) |
Hallowizer (talk | contribs) m (-Software) |
||
Line 63: | Line 63: | ||
} | } | ||
</source> | </source> | ||
− | |||
− |
Revision as of 23:49, 21 March 2021
News Channel | |
![]() | |
Version | 0.7 (7) |
---|---|
Title ID | HAGA, HAGx |
Type | General channel |
Peripherals | ![]() ![]() |
The News Channel download data packages from Nintendo servers via plain HTTP connection. The official servers for the News Channel were discontinued on June 28, 2013, however RiiConnect24 has since restored it's functionality.
Some examples:
http://news.wapp.wii.com/1/076/news.bin.08
Nowadays, it seems the news file has moved:
http://news.wapp.wii.com/v2/1/076/news.bin.00
...
http://news.wapp.wii.com/v2/1/076/news.bin.23
http://news.wapp.wii.com/ displays a Red Hat Enterprise Linux Test Page. File structure:
$0000 - $003F: padding (00) $0040 - $013F: rsa encrypted sha-1 signature of rest of the file $0140 - $0143: header $0144 - .....: compressed data
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:
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++;
}
}
}