10-08-2015, 12:52 AM
I'm not sure about battle and menu, but if you're talking about sprites on maps, I think what you're looking for is in the NPC data at $C41D52 (9 bytes each). There are actually 3 different kinds of NPC's, depending on how the data is set up. There are different data formats for each type, and some of the bits do different things depending on what kind of NPC it is.
The first type is for typical NPC's that have a normal walking animation.
The second is for objects like flames and save points that have a special animation.
The third is for objects with special graphics like all the mechanical stuff in the magitek factory. These are the only ones that can be 32x32 pixels instead of 16x16.
Here's my notes on the data format for all three types. The first one is for typical NPC's and the other two show what bits are different for the other two types of NPC's. I adapted this from Yousei's FF3Info.txt doc.
The first type is for typical NPC's that have a normal walking animation.
The second is for objects like flames and save points that have a special animation.
The third is for objects with special graphics like all the mechanical stuff in the magitek factory. These are the only ones that can be 32x32 pixels instead of 16x16.
Here's my notes on the data format for all three types. The first one is for typical NPC's and the other two show what bits are different for the other two types of NPC's. I adapted this from Yousei's FF3Info.txt doc.
Code:
NPC Data:
$0000 Event address low byte
$0001 Event address mid byte
$0002:0-1 Event address high byte
:2-4 Object palette index
:5 Object scrolls with BG2 instead of BG1
:6-7 Low bits of event bit
$0003 High bits of event bit
$0004:0-6 Horizontal (X) position
:7 Show rider on vehicle
$0005:0-5 Vertical (Y) position
:6-7 Object Speed
$0006 Graphic set
$0007:0-3 Movement type (0 = none, 1 = script-controlled, 2 = user-controlled, 3 = random, 4 = activated)
:4-5 Sprite priority (layering with respect to other sprites)
:6-7 Vehicle (0 = none, 1 = chocobo, 2 = magitek, 3 = raft)
$0008:0-1 Direction facing (0: up, 1: right, 2: down, 3: left)
:2 Does not turn to face character when spoken to
:3-4 Layer priority (layering with respect to background)
:5-7 Must be 0
NPC Data (w/ special animation):
$0008:0-1 Animation Type (0 = one frame, 1 = one frame, flips horizontally, 2 = two frames, 3 = four frames)
:5-7 Animation offset (see C0/58E4)
NPC Data (w/ special graphics):
$0000:0-6 VRAM address of special sprite graphics
:7 Flip sprite horizontally
$0001:0-4 Master NPC (this object follows the master NPC whenever it moves)
:5-7 Position offset
$0002:0 Position offset direction (0 = right, 1 = down)
:1 Slave (enables master NPC)
:7 Must be 1
$0007:6-7 Must be 0
$0008:2 32x32 sprite graphics