Banners
From WADder Wiki
Wii Banners come in various forms, the main two being banner/icon.bin files and filename.ash files, as well as Opening.bnr and 00000000.app files.
Contents |
banner/icon.bin and filename.ash files
The banner.bin and icon.bin files are (usually, though not required to be) LZ77 compressed U8 Archives themselves, each with an IMD5 header, containing the MD5 of the file.
ASH Files have a variety of compression types. The compression supported is yaz0 Compression, ASH0, and plain, uncompressed U8 Archives.
These files, when decompressed, are U8 Archives with a file format like this:
| Full Path | Description |
|---|---|
| /arc/ | Directory |
| /arc/anim/ | Contains the images and animation displayed when the channel is selected. |
| /arc/anim/*.brlan | Contains the animation. |
| /arc/blyt/ | Contains the images and animation displayed when the channel is selected. |
| /arc/blyt/*.brlyt | Contains the layout used in the animation. |
| /arc/timg/ | Contains the images used. |
| /arc/timg/*.tpl | The images, in standard TPL format. |
TPL Files
The TPL files are textures, or images. They can be read by TPLx or Zetsubou, and created using gentpl from WADder or Zetsubou from benzin. More info at TPL Files.
brlan and brlyt files
brlyt and brlan files and can be created and parsed with benzin. These are difficult to edit and create, and a corrupted file will cause a banner brick, if not worse. More info on editing at brlan files and brlyt files.
Opening.bnr and 00000000.app
These files consist of two parts, an IMET header which contains the Channel or Disc's title as shown in the System Menu. This is followed by an MD5 sum of 0x40 for 00000000.app (or 0x80 for Opening.bnr) to 0x640 for 00000000.app (or 0x680 for Opening.bnr) in the header. These files are compatible, though their formats differ slightly.
After the header follows an U8 Archive. This is an archive consisting of the following contents:
| Full Path | Description |
|---|---|
| /meta/ | Directory |
| /meta/banner.bin | Contains the images and animation displayed when the channel is selected. |
| /meta/icon.bin | Contains the images and animation displayed when the channel is in the menu. |
| /meta/sound.bin | Contains the audio that is played when the channel is selected. |
sound.bin
sound.bin has an IMD5 header. Currently, three sound.bin formats have been discovered.
| Format | Hex Identifier | Description |
|---|---|---|
| BNS | 0x42 0x4E 0x53 0x20 (BNS ) | Similar to the brstm format, always in the NGC-DSP ADPCM format, supports having an intro sound and a loop point. |
| WAV | 0x52 0x49 0x46 0x46 (RIFF) | Standard wav/(16 bit) PCM format, supports having an intro sound and a loop point using the tool Wavosaur (Windows). Can be LZ77 compressed. |
| AIFF | 0x46 0x4F 0x52 0x4D (FORM) | Standard AIFF/PCM. Can be LZ77 compressed. |
Header Formats
IMD5
typedef struct {
u32 imd5; // 'IMD5'
u32 filesize; //size of rest of file
u8 zeroes[8]; //padding
u8 crypto[16]; //MD5 of rest of file
} IMD5;
IMET
typedef struct {
u8 zeroes[0x40]; // padding, 0x80 for Opening.bnr
u32 imet; // "IMET"
u8 unk[8]; // 0x0000060000000003 fixed, unknown purpose
u32 sizes[3]; // icon.bin, banner.bin, sound.bin
u32 flag1; // unknown
u8 names[7][84]; // JP, EN, DE, FR, ES, IT, NL
u8 zeroes_2[0x348]; // padding
u8 crypto[16]; // MD5 of 0x40 to 0x640 in header (for 00000000.app, Opening.bnr is 0x80 to 0x680).
// crypto should be all 0's when calculating final MD5
} IMET;
