NANR (NITRO-System Animation for Runtime) files store cell animation data for the 2D engine. It follows the [NNS G2D Binary File Format|G2D Binary File Format]. NANR files use file signature {{'NANR'}}. !!ABNK Block The {{ABNK}} (Animation Bank) block defines the set of cell animations in this file. The structure is as follows: ||Offset||Type||Meaning | 0x00 | u16 | Number of animation sequences | 0x02 | u16 | Number of animation frames in this file | 0x04 | void* | Offset to animation sequence array | 0x08 | void* | Offset to animation frame array | 0x0C | void* | Offset to animation frame data block | 0x10 | void* | Offset to string bank (may be NULL) | 0x14 | void* | Unused (set to 0) The animation sequence pointer points to an array of animation sequences. These take the following structure: ||Offset||Type||Meaning | 0x00 | u16 | Number of frames | 0x02 | u16 | Index of starting frame | 0x04 | u16 | Animation element (0=Index, 1=Index+Translation, 2=Index+SRT) | 0x06 | u16 | Animation type (0=invalid, 1=cell, 2=multicell) | 0x08 | int | Animation playback mode (0=forward, 1=forward loop, 2=forward+backward, 3=forward+backward loop) The animation frame array takes the following structure: ||Offset||Type||Meaning | 0x00 | void* | Pointer to animation frame data | 0x04 | u16 | Frame duration of this sequence frame | 0x06 | u16 | Padding for alignment The format of the animation frame data depends on the format of the animation sequence. Format for Index animation frame: ||Offset||Type||Meaning | 0x00 | u16 | Cell index Format for Index+T animation frame: ||Offset||Type||Meaning | 0x00 | u16 | Cell index | 0x02 | u16 | Padding | 0x04 | s16 | Translate X | 0x06 | s16 | Translate Y Format for Index+SRT animation frame: ||Offset||Type||Meaning | 0x00 | u16 | Cell index | 0x02 | s16 | Rotation angle | 0x04 | s32 | Scale X | 0x08 | s32 | Scale Y | 0x0C | s16 | Translate X | 0x0E | s16 | Translate Y