I'm analyzing an rather ancient 3D mesh format (from 1995 or 1996). Inside the files, there are blocks of what I think are vertices.For example, the following is a direct hex dump from such a part:7855DAFF5BE60E00353D0200C82D0B005BE60E00353D0200C82D0B005BE60E00B61AEDFF7855DAFF5BE60E00B61AEDFF7855DAFF59D2FDFF363D0200C82D0B0059D2FDFF363D0200C82D0B0059D2FDFFB61AEDFF7855DAFF59D2FDFFB61AEDFFThese blocks are introduced by a little header, which has a value that could be the number of vertices that are present in the corresponding data block. For this excerpt, there is a 0x08. Since we have 24 values of 32bit, I think it is safe to assume that these blocks are actual vertices (0x08 * 3 = 24, with xyz). Other headers also have this value and their data blocks also have the exact number of dwords ([value in header] * 3 => number of dwords).But, now I'm struggling at deciphering the number format that was used. It isn't IEEE754; a friend of mine also pointed out that the hardware that was used these days didn't perform well with floating-point numbers and therefore often fixed-point numbers where used.So, any idea what kind of format this could be ?
Ancient number formats (probably fixed-point)
binary analysis;file format
if you reverse the byte order, and assume signed numbers you get these triplets:-2468488  976475   146741  732616  976475   146741  732616  976475 -1238346-2468488  976475 -1238346-2468488 -142759   146742  732616 -142759   146742  732616 -142759 -1238346-2468488 -142759 -1238346these seem like the coordinates of the corners of a 3d cube  x=(-2468488 .. 732616)y=( -142759 .. 976475)z=(-1238346 .. 146742)