Line 14: |
Line 14: |
| </pre> | | </pre> |
| | | |
− | The banner.bin and icon.bin files are LZ77 compressed U8 archives themselves, each with an IMD5 header, containing the MD5 of the file. sound.bin has an IMD5 header, and can be of at least 3 formats, BNS (which has INFO and DATA sections), LZ77 compressed RIFF (wav), and uncompressed RIFF. | + | The banner.bin and icon.bin files are LZ77 compressed U8 archives themselves, each with an IMD5 header, containing the MD5 of the file. sound.bin has an IMD5 header, and can be of at least 3 formats, BNS (which has INFO and DATA sections), RIFF (wav), and AIFF. (RIFF and AIFF have been seen LZ77 compressed) |
| | | |
| More information on LZ77 compression can be found on [http://en.wikipedia.org/wiki/LZ77_and_LZ78 Wikipedia]. | | More information on LZ77 compression can be found on [http://en.wikipedia.org/wiki/LZ77_and_LZ78 Wikipedia]. |
Line 30: |
Line 30: |
| | | |
| The TPL files are textures. They can be read by the tplx program from the gcube library. gcube can be found here: http://gcube.exemu.net/, however, the download link to the source is broken. A mirror of version 0.4 (which is, strangely enough, a newer version than what's on the homepage...) is available here: http://download.chinaunix.net/down.php?id=6661&ResourceID=3477&site=1. The format is also described in [[YAGCD]] at http://pabut.homeip.net:8000/yagcd/chap14.html#sec14.4. | | The TPL files are textures. They can be read by the tplx program from the gcube library. gcube can be found here: http://gcube.exemu.net/, however, the download link to the source is broken. A mirror of version 0.4 (which is, strangely enough, a newer version than what's on the homepage...) is available here: http://download.chinaunix.net/down.php?id=6661&ResourceID=3477&site=1. The format is also described in [[YAGCD]] at http://pabut.homeip.net:8000/yagcd/chap14.html#sec14.4. |
| + | |
| + | ==brlan Files== |
| | | |
| The brlan files (located in the "anim" folder), are some kind of animation scripts. There could be multiple scripts, for example: | | The brlan files (located in the "anim" folder), are some kind of animation scripts. There could be multiple scripts, for example: |
| Banner_Start.brlan | | Banner_Start.brlan |
| Banner_Loop.brlan | | Banner_Loop.brlan |
− | The scripts doesn't use the names of the TPL-files when using images in the animation, instead it uses names which are defined in the blyt-file. The blyt-file contains information about every object, what file it is in, index in file (a TPL can hold more than 1 picture), plus a bunch of unknown properties. | + | The scripts doesn't use the names of the TPL-files when using images in the animation, instead it uses names which are defined in the blyt-file. |
| + | |
| + | Currently the following info has been worked out from the file used in the icon.bin (banner.bin should be similar) (this is from looking at the file in a standard hex editor - e.g WinHex): |
| + | <pre> |
| + | First Line: |
| + | first 8 bytes RLAN FE FF 00 08 |
| + | next 4 bytes = Size of data from RLAN (inclusive) |
| + | next 2 bytes = Offset to first "section"? (so far 00 10 only) |
| + | next 2 bytes = 00 01 = not sure |
| + | |
| + | 2nd Line: |
| + | first 4 bytes = pai1 |
| + | next 4 bytes = size of section |
| + | next 4 bytes........ |
| + | RRR - 09 60 01 00 |
| + | SPM - 03 20 01 00 |
| + | MOH2- 02 B2 01 00 |
| + | NMH - 00 78 01 00 |
| + | |
| + | next 4 bytes = number of brlyt image references (00 00 00 01 for RRR, 00 00 00 03 for SPM, 00 00 00 02 for MOH2) |
| + | |
| + | |
| + | 3rd line: |
| + | First 4 bytes = unknown, so far has been |
| + | 00 00 00 14 |
| + | Next 4 bytes * brlyt image references = unknown, Offset (from p in pai1) to first name of some sort? (name that is in BRLYT file). |
| + | </pre> |
| + | |
| + | |
| + | ==brlyt Files== |
| + | The blyt-file contains information about every object, what file it is in, index in file (a TPL can hold more than 1 picture), plus a bunch of unknown properties. |
| I've also found if-statements in the bottom of the .brlyt file. They change the objects depending on what language your system uses (either TM or (R)). | | I've also found if-statements in the bottom of the .brlyt file. They change the objects depending on what language your system uses (either TM or (R)). |
| + | |
| + | The data structure worked out so far has been (as with brlan, only icon.bin has been used so far): |
| + | <pre> |
| + | First Line: |
| + | first 8 bytes RLYT FE FF 08 |
| + | next 4 bytes = size of data including RLYT |
| + | next 2 bytes = offset to first section (00 10) |
| + | next 2 bytes = unsure: |
| + | RRR - 00 09 |
| + | SPM - 00 0B |
| + | MOH2- 00 0B |
| + | NMH - 00 09 |
| + | |
| + | 2nd line: |
| + | first 4 bytes = lyt1 |
| + | next 4 bytes = size of lyt1 |
| + | next 8 bytes = seems to always be |
| + | 01 00 00 00 44 18 00 00 |
| + | |
| + | 3rd line: |
| + | first 4 bytes (continuation of last 8 bytes?): |
| + | 43 E4 00 00 |
| + | next 4 bytes: txl1 |
| + | next 4 bytes: size of txl1 |
| + | next 2 bytes: number of files |
| + | next 2 bytes: 00 00 |
| + | 4th Line: |
| + | next 4 bytes * number of files = offset of names |
| + | |
| + | |
| + | From txl1 + size of txl1: |
| + | mat1 |
| + | Next 4 bytes: Size of mat1. |
| + | Next 2 bytes: number of "Pictures" |
| + | Next 2 bytes: nulls |
| + | Next 4 bytes * number of pictures: offset of picture names. |
| + | Not sure on the rest at the moment |
| + | |
| + | |
| + | From mat1 + size of mat1. |
| + | pan1 |
| + | Next 4 bytes: Size of pan1. (always 4c?) |
| + | Next 4 bytes: 01 04 FF 00 ? |
| + | Next x bytes: RootPane usually + ?? |
| + | |
| + | |
| + | From pan1 + Size of pan1. |
| + | pas1 |
| + | Next 4 bytes: Size of pas1 (has been 8 pan1 + 4 bytes for size) |
| + | |
| + | |
| + | From pas1 + size of pas1 |
| + | bnd1 or pic1 |
| + | |
| + | |
| + | bnd1 |
| + | Next 4 bytes: Size of bnd1 |
| + | Next 4 bytes: 01 04 FF 00 ?? |
| + | </pre> |