1. Entity animation status flags (anim_status)
  2. Battle state controller flags (some_flag)
  3. Default sequence IDs

Reference for the per-entity animation state used by the animation sequences (readable/writable via the C3/E5 special variables).

Entity animation status flags (anim_status)

32-bit flag field on each battle entity, readable from a sequence via C3 0x1F. Most bits are refreshed from the entity’s statuses through a lookup table (getAnimMaskFromStatus at 0x509BA0 in FF8_EN.exe); the engine-controlled bits (marked engine) survive that refresh.

bit Flag Meaning Source
0 0x00000001 Weakened (HP < 25%) Status 1 bit 8
1 0x00000002 Death Status 1 bit 0
2 0x00000004 Back attack Status 2 bit 23
3 0x00000008 Stop Status 2 bit 3
4 0x00000010 Petrify Status 1 bit 2
5 0x00000020 Poison Status 1 bit 1
6 0x00000040 Darkness Status 1 bit 3
7 0x00000080 Silence Status 1 bit 4
8 0x00000100 Berserk Status 1 bit 5
9 0x00000200 Float Status 2 bit 13
10 0x00000400 Zombie Status 1 bit 6
11 0x00000800 Confusion Status 2 bit 14
12 0x00001000 Sleep Status 2 bit 0
13 0x00002000 Gradual petrify Status 2 bit 12
14 0x00004000 Haste Status 2 bit 1
15 0x00008000 Slow Status 2 bit 2
16 0x00010000 Unknown -
17 0x00020000 Aura Status 2 bit 8
18 0x00040000 Curse Status 2 bit 9
19 0x00080000 Doom Status 2 bit 10
20 0x00100000 Invincible Status 2 bit 11
21 0x00200000 Defend Status 2 bit 19
22 0x00400000 Eject Status 2 bit 16
23 0x00800000 Preparing attack engine
24 0x01000000 Running / moving to target engine
25 0x02000000 Vit0 Status 2 bit 24

The “weakened look” group tested by the engine is 0x41021 (weakened, poison, sleep, curse).

Battle state controller flags (some_flag)

16-bit flag field on the per-entity sequence state (offset +0x2C of the state controller struct), readable/writable from a sequence via C3 0x08 / E5 0x08.

Flag Meaning
0x001 Sequence (re)start pending: set when a new sequence is queued; the per-frame driver clears it and runs the interpreter from the sequence start immediately
0x002 An animation was queued by the sequence (opcode < 0x80 or A0); when it ends the driver re-queues it (loop)
0x004 Current animation finished (set automatically at the animation’s last frame, cleared while playing). Opcode A0 only re-triggers an already-playing animation when this is set; opcode A4 sets it manually
0x008 Waiting for the animation to finish: set (together with 0x002) by opcode < 0x80; the driver does not advance the sequence while it is set, and clears it when the animation completes
0x040 Sequence chain finished / entity idle-interruptible: set by A3 when no follow-up sequence is pending, cleared when a sequence is queued. Externally triggered sequences (hit reactions BF, status changes) are only accepted when 0x040 or 0x100 is set
0x100 Taking damage / hit reaction in progress (same gate as 0x040 for external triggers)

Other bits (e.g. 0x080, written by some vanilla sequences through E5 08) have no identified engine use.

Default sequence IDs

At battle start every entity plays sequence 8 (battle entrance) and the idle fallback (basedAnimSeq) defaults to 1.

When a sequence ends (A2) with nothing queued, monsters return to basedAnimSeq; characters (com_id < 0x10) pick by animation status (analyse_animation_status at 0x509C10), in this priority order:

Sequence Played when
3 Dead
2 Sleeping, or weakened look (HP < 25%, poison, curse)
16 (0x10) Running / moving
19 (0x13) Preparing attack
29 (0x1D) Defending
1 Normal standing (default)