Pushover Ant Animation Format

From ModdingWiki
Jump to navigation Jump to search
Pushover Ant Animation Format
There is no example of an image in this format — upload one!
Format typeImage
HardwareEGA, VGA
Colour depth4-bit colour + transparency
Minimum size (pixels)Unknown
Maximum size (pixels)Unknown
PaletteExternal
Plane count5
Transparent pixels?Yes
Hitmap pixels?No
Games

DATA/ANT00_16.ANX, ANT17_30.ANX, ANT31_46.ANX and ANT47_65.ANX contain G.I. Ant’s animation graphics in Pushover. Decompress RNC first.

File format

Data type Name Description
UINT16BE frameCount Number of frames in this block
INT8[frameCount] yOffsets Per-frame vertical offsets
BYTE[frameCount % 2] padding Round offset table length to an even number
FRAME[frameCount] frames Frames in the shared SPX bitmap layout

Blocks are concatenated with no file-level directory. Each FRAME uses the two-byte header, placement mask and five-plane bitmap described in Pushover Sprite Format. Its byte size is 2 + widthUnits * 2 * height * 5. After the final frame, the next big-endian count starts the next block.

The signed offset byte is a vertical positioning adjustment, not a frame-duration field. The documented body anchor is X = column * 16 + 8, Y = row * 16 + 6 + frameOffset + activityAdjustment. The blitter subtracts height from Y for the top edge.

Pose numbering

The filenames describe pose ranges, but not every pose has a separately stored block. Some states reverse or alias previously loaded frames. Use the port's pose-mapping tables instead of assigning one consecutive pose number to every block. The export pipeline resolves 66 poses; its pose-32 alias is explicitly an approximation of a more complicated original construction.

Notes

Frame timing belongs to the executable’s animation state machine. The low width bits alone are insufficient for positioning, and treating the per-frame offset table as timing data produces incorrect movement.

Source code

From pushover, the open-source browser port and its reverse-engineering notes:

Credits

This file format was reverse engineered by VorticonCmdr. If you find this information helpful in a project you're working on, please give credit where credit is due. (A link back to this wiki would be nice too!)