> Here's a sample SHP, pure black (with unittem, no bg), 2 frames:
> 00 00 08 00 08 00 02 00
> 00 00 00 00 08 00 08 00 00 00 00 00 00 00 07 00 00 00 00 00 38 00 00 00
> 00 00 00 00 08 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 78 00 00 00
> 0C 0C 0C 0C 0C 0C 0C 0C
> 0C 0C 0C 0C 0C 0C 0C 0C
> 0C 0C 0C 0C 0C 0C 0C 0C
> 0C 0C 0C 0C 0C 0C 0C 0C
> 0C 0C 0C 0C 0C 0C 0C 0C
> 0C 0C 0C 0C 0C 0C 0C 0C
> 0C 0C 0C 0C 0C 0C 0C 0C
> 0C 0C 0C 0C 0C 0C 0C 0C
> 0C 0C 0C 0C 0C 0C 0C 0C
> 0C 0C 0C 0C 0C 0C 0C 0C
> 0C 0C 0C 0C 0C 0C 0C 0C
> 0C 0C 0C 0C 0C 0C 0C 0C
> 0C 0C 0C 0C 0C 0C 0C 0C
> 0C 0C 0C 0C 0C 0C 0C 0C
> 0C 0C 0C 0C 0C 0C 0C 0C
> 0C 0C 0C 0C 0C 0C 0C 0C
> Hope that displays properly.
> I've gotten everything down except for part of the 2nd & 3rd lines. Eg, the 2nd line:
> 00 00 00 00 08 00 08 00 00 00 00 00 00 00 07 00 00 00 00 00 38 00 00 00
> The first 20 bytes I understand (not fully, but enough).
> Concerning the last 4: bytes 21 & 22 seem to be critical. Messing with them will mess up the SHP, and they're always non-zero (except for a blank SHP). They seem to follow some vague patterns, and depend on the total number of frames and other factors.
> What are they? How are they calculated?
It's the frame offset.
> The last two bytes are sometimes non-zero but they seem to be arbitrary. Correct?
Unlikely.
> BTW, I typed this twice. The first time the page refreshed automatically. The second time I typed faster.
Write long posts in a text editor (not just useful for this forum). 
Olaf van der Spek

XCC Home Page