What I've gathered thus far is that the BMB file is a package of multiple materials at once, and it may or may not just hold one texture. I've also found that:
All files have an IDX2 somewhere at the start of every file (header?), followed by what seems to be the list of the texture(s) in the file [i.e. chicken, stud_bla, blackskin, etc]
All files have an INFO section(s) (comes after texture name)
Some files notably have a MIPM(s). Sometimes, non-existent, appearing once, or even twice.
All files have an IMAG(s) section (comes after INFO)
All files have an END(s) (comes after IMAG)
The (s) means it is dependant on if either one or multiple materials are used in a file or not.
I've attached a few sample .BMB files, as well as their ripped counterparts that were gotten via NinjaRipper, as well as included a few other files which are relatively short, making them possibly easier to study, especially since the pattern is very repetitive.
BMB Materials.zip
Please note that CHAR002 (aka Tree Alpha) may be the only one in the attachment that uses alpha transparency, and funnily enough the I-NFO is broken up as well as the I missing from IMAG...
Last edited by Xiron on Sat Jan 30, 2016 11:44 am, edited 4 times in total.
I manged to change a colour on a texture, and I thought the colour was going to be either YRB format for a second (except byte order is reversed because little-endian) as I first hit blue, then yellow, followed by, wait for it.... grey! Well, that all depends on if the following byte is FF or 00. If the following is FF it is grey and 00 it is dark blue (saturation?)... so yeah, I don't know. I've attached the file so you can see where I was editing, the spot is at offset BA4, the blue being E0, FD being yellow, and C0 being that grey/dark blue, oh, and on top of what I noted earlier, setting the following FF to 00 just made the colour have a darker tone on yellow. My last note is that changing that one colour changed all spots on the texture that uses that colour, not just one pixel.
The data part of the BMB actually looks exactly how a uncompressed 32-bit .tga texture looks.
As for multi-texture file. There is an 'index' of texture names at the start of the file, and for as many names there are there is one corresponding INFO, IMAG, and END.
Each label is spaced out with "00 ## 00", where 0 is a count up number (one value higher then the last)
Information in the INFO section which comes directly before IMAG is unknown.
Hey Xiron, I think it would help if you were to view some of LEGO Soccer manias .bmb files (there the same format) that are all the same kind but instead they are compressing the .jpg file format