A TMB is the first 0x6A0 bytes of a PPM: header, metadata and thumbnail, without the full animation and sound. Hatena responses can embed TMB records so a list can show a Flipnote's creator, lock state and preview before the full PPM is requested. [1][2]
Fetch the PPM to play the animation; a TMB only provides its preview information. For the shared fields and thumbnail layout, see PPM files. [1][2]
What a TMB contains
A TMB is used as a compact Flipnote preview in online menu contexts. The published format describes it as the first 0x6A0 bytes of a PPM: a 16-byte PARA header, 0x90-byte metadata block and 0x600-byte tiled thumbnail. It contains the PPM thumbnail but is not itself only the thumbnail. That distinction matters when a grid shows a preview before the full animation has been downloaded. [1][2]
How to verify one
Require at least 0x6A0 bytes, check the PARA marker and decode the preview from offset 0xA0. Metadata supplies the selected thumbnail frame index, names, IDs and edit timestamp. Animation and sound sizes in the header describe the corresponding full PPM but those sections are not present in the TMB, so do not attempt to follow their offsets inside the preview object. [1][2]
Embedded grids
UGO grids may embed multiple TMB objects after menu text. Validate each object's start and end against the UGO section length before decoding; a malformed menu row must not allow an image read into the next record. Compare a TMB with its full PPM only as a cross-check, because caches can be generated at different times. [1][2]
