This is the specifications for the image file which is handled by the
Game Extractor plugin
Viewer_TBV_TBVOL_BMX.
Endian Order: | Little Endian |
Compression: | Custom RLE, LZO1X |
Encryption: | None |
This format is used by the following Games:
3D Ultra Lionel Traintown | *.bmx |
This is the format specification information:
| // HEADER
4 - Header? (237,95,132,0)
4 - Unknown (4)
4 - Pixel Type (1=Grayscale, 2=RGB555)
4 - File Data Length
for most {
48 - null
}
for some (only ones with LZO1X compression?) {
4 - Unknown
12 - null
4 - Unknown
4 - Unknown (1)
4 - Unknown
}
// DETAILS DIRECTORY
4 - Number of Sprites
// for each sprite
4 - Offset (relative to the offset of this field)
2 - X Position?
2 - Y Position?
2 - Sprite Width
2 - Sprite Height
2 - Unknown (32)
2 - Compression Type (0=Raw RGB555, 1=RLE, 3=LZO1X+RGB555, 4=LZO1X+RLE, 5=Empty?)
// FILE DATA
// for each file
if (Compression Type == 0){
if (PixelType == 1){
X - Pixel Data (Grayscale)
}
else if (PixelType == 2){
X - Pixel Data (RGB555)
}
}
else if (Compression Type == 1){
X - File Data (RLE encoding){
// for each line {
2 - Block Length
X - Block {
// repeat until we have a pixel for each of the sprite width {
1 - Control Character (<128 = copy pixels raw, >128 = Repeat the next pixel X-128 times)
X - Pixels (2-byte RGB555)
}
1 - null End Of Line character
}
}
else if (Compression Type == 3){
4 - Compressed Data Length
4 - Decompressed Data Length
X - File Data (Uncompress using LZO1X and then read RGB555 as per Compression Type 0){
}
else if (Compression Type == 4){
4 - Compressed Data Length
4 - Decompressed Data Length
X - File Data (Uncompress using LZO1X and then apply RLE as per Compression Type 1){
}
else if (Compression Type == 5){
1 - null
} |
These are the accompanying notes and further information:
| An Image made up of lots of sprites.
Uses a basic type of RLE encoding. Also sometimes uses LZO1X compression on the RLE data. |
Game Extractor is able to read files of this type, as well as files from thousands of other games. To give it a try, download
Game Extractor (Basic Version) for
free, and see what it can do.
For further information on this format, refer to the source code on our
GitHub repository.