// // Binary Image Map (*.BI?) // (BlockSize: 0x00004000, CoderKey: 0x00000F7E) // // NOTE: These files are only used by the PowerVR binaries. // NOTE: Only *.BI2 (never saw a file with another version) // struct Header { uint32_t FileSize; uint32_t OffsetCount; // 0x00000001 uint32_t OffsetTable[OffsetCount]; // 0x0000000C (not used) } struct Name // "IMAP" { uint8_t Length; uint8_t Buffer[Length]; // Coder: [i] ^= ~i } uint32_t Width; uint32_t Height; uint32_t Image[Height][Width]; // RGBT8888 // // I don’t know the transparency table/logic, but inverting the transparency // byte results in reasonable alpha values. Note that the image bytes of the // "shadotin.bi2" (and probably the unused "pvrshado.bi2") are moved with an // offset of one byte into the texture buffer. Since these images are filled // with opaque gray pixels, this results in a half-transparent teal texture. // However, all this pixel/image interpretation is mere guess work, and it’s // (nowadays) hard to get your hands on PowerVR hardware or documentation... //