Format Additions to Standard Windows Bitmap Format

For Microsoft Combat Flight Simulator and FS2000

Combat Flight Simulator has introduced an Amended version of the Standard 8bit BMP format. These Bitmaps are readily readable by any normal program just as normal BMP images but, when used as Texture files in CFS there are a couple of added features available.


Variable Transparency

This feature was discovered by Neil Park by careful detective work.


In a normal BMP the colour palette is store as 4 bytes per colour ( B,G,R,X) where the X value is ignored. Neil has discovered that if you set all the X bytes to 255 (Hex FF) then alter one or more of them to a different value you get variable transparency of that palette colour (in CFS) varying from Totally transparent (X=0) to Totally Opaque (X=255) with all levels inbetween. Neil has written a Program, BMP2CFS, to make the setting or adjusting of the transparency values simple. It is available on Flightsim.com as bmp2cfs.zip.


Pyramid Encoding

Many people will have noticed that texture BMP files supplied with CFS are bigger than they should be by a large margin. I have calculated that the total extra space occupied by this "Shadow" data in CFS is 10meg. Loading an image into a paint program then saving it out again strips this excess data and the bitmaps still function normally.

I have experimented with CFS bitmaps and discovered that they contain progressively smaller versions of the main image right down to 2x2. So a 256x256 file contains, after the main image data, the data for 128x128 then 64x64 then 32x32 and so on and 128x128 images also contain 64x64,32x32.......

No doubt CFS uses this Data for speeding up Texture scaling and to optimise appearance at different distances/sizes.

Note: All this extra information is only relevant for Bitmaps being used in the CFS program. Any normal graphics program will take no notice of it.


Splitbmp.exe - A small dos program written during the experimentation. Used to create the Images above.

Download splitbmp.zip(11k)