Editing MBM Textures
Contents
Requirements
Before we start, we need these tools:
- Photoshop
- Hex Editor HxD or frhed
Example
Let's take an example of a model with two textures.
- model.mu
- model000.mbm
- model001.mbm
Editing Textures as .PBM Images
- First, we rename model000.mbm to model000.pbm and model001.mbm to model001.pbm.
- Now, we open model000.pbm with HxD and you will see a picture like this:
The first 20 bytes is what makes the MBM format different from PBM - Portable Bitmap Format. - Also, pay attention to the Magical Number. Each model000.mbm has its own Magical Number, so always make a backup, or write somewhere these first 20 bytes for later, so you are able to restore the image to the original formatting.
- Now, we select them and replace them with one of these 20 bytes and replace them with one of these lines:
- For 1024 x 1024 pixel images use this row:
- For 512 x 512 pixel images use this row:
- For 256 x 256 pixel images use this row:
- For 1024 x 1024 pixel images use this row:
- Open .PBM images with Photoshop, and do anything you want with it. Then save. Avoid changing texture size, because I haven't tried to change texture size, so I can't tell if it will work correctly or not.
- Now, open the changed .PBM image with HxD again:
- And replace with original 20 bytes that were there:
- And don't forget about the corresponding Magic Number:
- Save and now rename them back from model000.pbm to model000.mbm and model001.pbm to model001.mbm.
- ?????
- PROFIT
- I don't know about other editors if they work with PBM or no, check it at you own risk.
- Also when you writing in HxD be sure that "." is 0A and not 2E.
Editing Textures as .RAW Images
- Rename the image file extension from .MBM to .RAW
- Remove the first 20 bytes via HEX editor (copy them somewhere with Magical Number) & save file.
- Now, open in Photoshop. This part is a bit tricky, here starts the game "guess images size and amount of channels", but a little bit of mathematics can help you:
For example, after removing 20 first bytes,the picture size in bytes is 1,048,576. Let's assume that picture's size is 512 x 512 pixels.
I use such formula to calculate: Channels * (Depth/8) = Bytes / (Length * Width)
And in our case it means: 1048576/512*512 = 1048576/262144 = 4 channels in 8 bit colors or 2 channels in 16 bit colors.
Channels - assumable amount of channels in image. Defaults are 2, 3, 4 & etc. channels.
Depth - assumable size in bits of every channels. Defaults are either 8 bit, or either 16 bit. 8 bit means 256 in decimal, so 256*3 channels and 16,777,216 colors.
Length - assumable length of images. Defaults are 256, 512, 1024.
Width - assumable width of images. Defaults are 256, 512, 1024.
Bytes - exact size of image in bytes after we removed first 20 bytes.
- Edit via Photoshop, saving again as RAW image.
- Add first 20 bytes back.
- It should work. For me it does.
- ?????
- PROFIT
Converting Textures in to .PNG Images and making .MU Model to load them
- Rename image file extension from .MBM to .RAW
- Remove first 20 bytes via HEX editor once and for all.
- Now open in Photoshop. Follow previous instructions of how-to open .RAW Image in Photoshop.
- Before editing, Flip image Vertically and save it as .PNG
- Open model.mu with HxD hex editor, go the end of the file. You will see this there:
- Now, change "mbm" extensions for all images in to "png" and save.
- Now models should load PNG images, instead of MBM. It does for me.
- ?????
- PROFIT