Changes

Jump to navigation Jump to search
675 bytes added ,  01:48, 4 January 2016
no edit summary
Line 1: Line 1: −
News / Weather channel downloads data packages from Nintendo servers via plain http connection.
+
{{Infobox channel
 +
| title      = News Channel
 +
| image      = [[File:Newschannel.png|200px]]
 +
| desc        = News informations
 +
| type        = General channel
 +
| version    = 0.7 (7)
 +
| peripherals = {{Wiimote1}} {{Internet}}
 +
| wc24        = 1
 +
}}
 +
 
 +
The '''News Channel''' download data packages from Nintendo servers via plain HTTP connection.  Since the official servers for this were discontinued on June 28, 2013, [[RiiConnect24]] is in the works.
    
Some examples:
 
Some examples:
   −
http://weather.wapp.wii.com/1/076/short.bin
+
http://news.wapp.wii.com/1/076/news.bin.08<br />
http://weather.wapp.wii.com/1/076/forecast.bin
+
 
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:
 
File structure:
    +
<pre>
 
$0000 - $003F: padding (00)
 
$0000 - $003F: padding (00)
 
$0040 - $013F: rsa encrypted sha-1 signature of rest of the file
 
$0040 - $013F: rsa encrypted sha-1 signature of rest of the file
$0140 - $....: compressed data
+
$0140 - $0143: header
 +
$0144 - .....: compressed data
 +
</pre>
   −
Data compression method is still unknown. If you calculate entropy of the data, you will notice that it is definitely not encrypted. Probably it uses a modified version of propieritary Nintendo compression method described here: http://everything2.com/index.pl?node_id=1469892&lastnode_id=0
+
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
   −
Here's a part of news data file:
+
Quick and very dirty C code:
000003D8   24 0F F0 00  7F 23 D7 00  87 24 2F 14  00 52 00 00  65 00 67 00  69 00 6F 00  $....#...$/..R..e.g.i.o.
+
<source lang="c">
000003F0   00 6E 00 61  00 6C 00 20  00 45 4E 00  11 77 00 73  05 4A 49 00  13 56 74 00  .n.a.l. .EN..w.s.JI..Vt.
+
   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>
   −
You can almost see string "Regional News" there.
+
[[Category:Software]]
321

edits

Navigation menu