Changes

Jump to navigation Jump to search
620 bytes removed ,  05:31, 9 April 2021
no edit summary
Line 1: Line 1:  
{{Infobox channel
 
{{Infobox channel
 
| title      = News Channel
 
| title      = News Channel
| image      = [[File:News Channel.png|200px]]
+
| image      = [[File:Newschannel.png|200px]]
| desc        = News informations
+
| desc        = News information
 +
| id          = HAGA, HAGx
 
| type        = General channel
 
| type        = General channel
| version    =  
+
| version    = 0.7 (7)
| peripherals = {{Wiimote1}} {{Internet}}  
+
| peripherals = {{Wiimote1}} {{Internet}}
 +
| wc24        = 1
 
}}
 
}}
   −
The '''News channel''' download data packages from Nintendo servers via plain http connection.
+
The '''News Channel''' downloads 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 its functionality.
   −
Some examples:
+
The data files are RSA-2048-SHA1 signed, and the LZ10 compressed content begins at 0x140. A Kaitai file documenting the file structure can be found [https://github.com/RiiConnect24/Kaitai-Files/blob/master/Kaitais/news_file.ksy here], and code used by RiiConnect24 to download news data and generate files is available [https://github.com/RiiConnect24/File-Maker/tree/master/Channels/News_Channel here].
 
  −
http://news.wapp.wii.com/1/076/news.bin.08<br />
  −
 
  −
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:
  −
 
  −
<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]]
 
321

edits

Navigation menu