Difference between revisions of "FF7/Attack data"

From Final Fantasy Inside
< FF7
Jump to navigation Jump to search
my_wiki>Akari
(KERNEL.BIN - Section 2: Attack data format)
my_wiki>G
Line 1: Line 1:
== KERNEL.BIN - Section 2: Attack data format ==
+
''(Note:This information has been provided by NFITC1)''
  
This section contains the data for the different attacks. Each record is 28 bytes long.
 
  
{| border="0" cellpadding="3" cellspacing="1" style="background: rgb(0,0,0)" align="center"
+
This section contains the data for Menu commands. There are 32 entries of 8 bytes in the following format:
! style="background:rgb(204,204,204); width=50px;" align="center" | Offset
+
 
! style="background:rgb(204,204,204); width=50px;" | Length
+
<TABLE border=1 CELLSPACING=1 Cellpadding=3 FRAME=VOID align="center" rules=all frame=box>
! style="background:rgb(204,204,204); width:275px;" colspan="2" | Description
+
<TR style="background:#CCCCCC" align="center">
|-
+
<TD><b>Offset</b></TD>
|style="background:rgb(255,255,204)" align="center" | 0x00
+
<TD><b>Length</b></TD>
|style="background:rgb(255,255,204)" | 4 bytes
+
<TD colspan=2><b>Function</b></TD>
|style="background:rgb(255,255,204)" colspan="2" | Unknown
+
</TR>
|-
+
<TR>
|style="background:rgb(255,255,255)" align="center" | 0x04
+
<TD align="center">0x00</TD>
|style="background:rgb(255,255,255)" | 1 byte
+
<TD>1 byte</TD>
|style="background:rgb(255,255,255)" colspan="2" | Casting cost
+
<TD colspan=2>Initial Cursor Action (see below)</TD>
|-
+
</TR>
|style="background:rgb(255,255,204)" align="center" | 0x05
+
<TR>
|style="background:rgb(255,255,204)" | 5 bytes
+
<td style="background:rgb(204,204,255)" align="center" colspan="2" rowspan="12"></TD>
|style="background:rgb(255,255,204)" colspan="2" | Unknown
+
<TD align="center">00h&nbsp;</TD>
|-
+
<TD>Perform command using target data</TD>
|style="background:rgb(255,255,255)" align="center" | 0x0A
+
</TR>
|style="background:rgb(255,255,255)" | 2 byte
+
<TR>
|style="background:rgb(255,255,255)" colspan="2" | Attack type
+
<TD align="center">01h&nbsp;</TD>
|-
+
<TD>Magic Menu</TD>
|style="background:rgb(255,255,255)" align="center" | 0x0C
+
</TR>
|style="background:rgb(255,255,255)" | 1 bytes
+
<TR>
|style="background:rgb(255,255,255)" colspan="2" | Attack attribute
+
<TD align="center">02h&nbsp;</TD>
|-
+
<TD>Summon Menu</TD>
|style="background:rgb(204,204,255)" align="center" colspan="2" rowspan="16" | &nbsp;
+
</TR>
|style="background:rgb(255,255,255); width:110px" | 0x00
+
<TR>
|style="background:rgb(255,255,255); width:165px" | Escape/Exit-Type
+
<TD align="center">03h&nbsp;</TD>
|-
+
<TD>Item Menu</TD>
|style="background:rgb(255,255,255)" | 0x01
+
</TR>
|style="background:rgb(255,255,255)" | Ribbon-Like
+
<TR>
|-
+
<TD align="center">04h&nbsp;</TD>
|style="background:rgb(255,255,204)" | 0x03
+
<TD>E.Skill Menu</TD>
|style="background:rgb(255,255,204)" | Enemy Skill (?)
+
</TR>
|-
+
<TR>
|style="background:rgb(255,255,204)" | 0x05
+
<TD align="center">05h&nbsp;</TD>
|style="background:rgb(255,255,204)" | Enemy Skill (?)
+
<TD>Throw Menu</TD>
|-
+
</TR>
|style="background:rgb(255,255,204)" | 0x07
+
<TR>
|style="background:rgb(255,255,204)" | Enemy Skill (?)
+
<TD align="center">06h&nbsp;</TD>
|-
+
<TD>Limit Menu (Character Specific)</TD>
|style="background:rgb(255,255,255)" | 0x0D
+
</TR>
|style="background:rgb(255,255,255)" | Restorative/Protective
+
<TR>
|-
+
<TD align="center">07h&nbsp;</TD>
|style="background:rgb(255,255,255)" | 0x0F
+
<TD>Cursor moves to battle field and obeys target data</TD>
|style="background:rgb(255,255,255)" | Status-giving/Elemental
+
</TR>
|-
+
<TR>
|style="background:rgb(255,255,255)" | 0x11
+
<TD align="center">08h&nbsp;</TD>
|style="background:rgb(255,255,255)" | Shield
+
<TD>W-Item</TD>
|-
+
</TR>
|style="background:rgb(255,255,255)" | 0x13
+
<TR>
|style="background:rgb(255,255,255)" | Limit Break
+
<TD align="center">09h&nbsp;</TD>
|-
+
<TD>W-Magic</TD>
|style="background:rgb(255,255,255)" | 0x15
+
</TR>
|style="background:rgb(255,255,255)" | Cait Sith Limit Break
+
<TR>
|-
+
<TD align="center">0Ah&nbsp;</TD>
|style="background:rgb(255,255,255)" | 0x17
+
<TD>W-Summon</TD>
|style="background:rgb(255,255,255)" | Summon
+
</TR>
|-
+
<TR>
|style="background:rgb(255,255,255)" | 0xC7
+
<TD align="center">0Bh&nbsp;</TD>
|style="background:rgb(255,255,255)" | Roulette
+
<TD>Coin Menu</TD>
|-
+
</TR>
|style="background:rgb(255,255,255)" | 0x97
+
<TR>
|style="background:rgb(255,255,255)" | Multiple Strike Limit Breaks
+
<TD align="center">0x01</TD>
|-
+
<TD>1 byte</TD>
|style="background:rgb(255,255,255)" | 0x01
+
<TD colspan=2>Force Targeting (see below)</TD>
|style="background:rgb(255,255,255)" | Phoenix Down
+
</TR>
|-
+
<TR>
|style="background:rgb(255,255,255)" | 0x03
+
<td style="background:rgb(204,204,255)" align="center" colspan="2" rowspan="8"></TD>
|style="background:rgb(255,255,255)" | X-needles Attack
+
<TD>01h&nbsp;</TD>
|-
+
<TD>Enable Selection</TD>
|style="background:rgb(255,255,255)" | 0x17
+
</TR>
|style="background:rgb(255,255,255)" | Final Limit Break
+
<TR>
|-
+
<TD>02h&nbsp;</TD>
|style="background:rgb(255,255,255)" align="center" | 0x0D
+
<TD>Cursor Starts on Enemies</TD>
|style="background:rgb(255,255,255)" | 1 byte
+
</TR><TR>
|style="background:rgb(255,255,255)" colspan="2" | ID Number
+
<TD>04h&nbsp;</TD>
|-
+
<TD>Multiple targets as default</TD>
|style="background:rgb(255,255,255)" align="center" | 0x0E
+
</TR><TR>
|style="background:rgb(255,255,255)" | 1 byte
+
<TD>08h&nbsp;</TD>
|style="background:rgb(255,255,255)" colspan="2" | Restore Apply
+
<TD>Toggle Multiple/single target(s)</TD>
|-
+
</TR>
|style="background:rgb(255,255,255)" align="center" | 0x0F
+
<TR>
|style="background:rgb(255,255,255)" | 1 byte
+
<TD>10h&nbsp;</TD>
|style="background:rgb(255,255,255)" colspan="2" | Strength
+
<TD>One Row only</TD>
|-
+
</TR>
|style="background:rgb(255,255,255)" align="center" | 0x10
+
<TR>
|style="background:rgb(255,255,255)" | 1 byte
+
<TD>20h&nbsp;</TD>
|style="background:rgb(255,255,255)" colspan="2" | Restore type
+
<TD>Long range targets take normal damage to physical "elements"</TD>
|-
+
</TR><TR>
|style="background:rgb(204,204,255)" align="center" colspan="2" rowspan="4" | &nbsp;
+
<TD>40h&nbsp;</TD>
|style="background:rgb(255,255,255)" | 0x00
+
<TD>Both Sides</TD>
|style="background:rgb(255,255,255)" | Restore HP
+
</TR><TR>
|-
+
<TD>80h&nbsp;</TD>
|style="background:rgb(255,255,255)" | 0x01
+
<TD>Random Target</TD>
|style="background:rgb(255,255,255)" | Restore MP
+
</TR>
|-
+
<TR style="background:rgb(255,255,204);" >
|style="background:rgb(255,255,255)" | 0x02
+
<TD align="center">0x02</TD>
|style="background:rgb(255,255,255)" | Restore Ailment
+
<TD>2 bytes</TD>
|-
+
<TD colspan=2>Unknown (Always FFh)</TD>
|style="background:rgb(255,255,255)" | 0xFF
+
</TR><TR>
|style="background:rgb(255,255,255)" | None
+
<TD align="center">0x04</TD>
|-
+
<TD>2 bytes</TD>
|style="background:rgb(255,255,204)" align="center" | 0x11
+
<TD colspan=2>Single Target Camera Movement index</TD>
|style="background:rgb(255,255,204)" | 2 bytes
+
</TR><TR>
|style="background:rgb(255,255,204)" colspan="2" | Unknown
+
<TD align="center">0x06</TD>
|-
+
<TD>2 bytes</TD>
|style="background:rgb(255,255,255)" align="center" | 0x13
+
<TD colspan=2>Multiple Targets Camera Movement index</TD>
|style="background:rgb(255,255,255)" | 1 byte
+
</TR>
|style="background:rgb(255,255,255)" colspan="2" | Times attacking
+
</TABLE>
|-
+
 
|style="background:rgb(255,255,255)" align="center" | 0x14
+
<br />
|style="background:rgb(255,255,255)" | 4 bytes
+
''Notes'': A menu (except the Coin menu?) will return only the index of the selection on that menu to the battle engine. Then battle engine then performs the action based on that index, not the object selected.
|style="background:rgb(255,255,255)" colspan="2" | Status
+
(ie. if magic is edited to display the Summon menu and Titan (04h) is selected to be summoned, the character will perform Poisona (04h) instead because the battle engine knows that it was the magic command that gave that index.)
|-
 
|style="background:rgb(255,255,255)" align="center" | 0x18
 
|style="background:rgb(255,255,255)" | 2 bytes
 
|style="background:rgb(255,255,255)" colspan="2" | Element
 
|-
 
|style="background:rgb(255,255,204)" align="center" | 0x20
 
|style="background:rgb(255,255,204)" | 2 bytes
 
|style="background:rgb(255,255,204)" colspan="2" | Unknown
 
|}
 

Revision as of 09:17, 19 October 2008

(Note:This information has been provided by NFITC1)


This section contains the data for Menu commands. There are 32 entries of 8 bytes in the following format:

Offset Length Function
0x00 1 byte Initial Cursor Action (see below)
00h  Perform command using target data
01h  Magic Menu
02h  Summon Menu
03h  Item Menu
04h  E.Skill Menu
05h  Throw Menu
06h  Limit Menu (Character Specific)
07h  Cursor moves to battle field and obeys target data
08h  W-Item
09h  W-Magic
0Ah  W-Summon
0Bh  Coin Menu
0x01 1 byte Force Targeting (see below)
01h  Enable Selection
02h  Cursor Starts on Enemies
04h  Multiple targets as default
08h  Toggle Multiple/single target(s)
10h  One Row only
20h  Long range targets take normal damage to physical "elements"
40h  Both Sides
80h  Random Target
0x02 2 bytes Unknown (Always FFh)
0x04 2 bytes Single Target Camera Movement index
0x06 2 bytes Multiple Targets Camera Movement index


Notes: A menu (except the Coin menu?) will return only the index of the selection on that menu to the battle engine. Then battle engine then performs the action based on that index, not the object selected. (ie. if magic is edited to display the Summon menu and Titan (04h) is selected to be summoned, the character will perform Poisona (04h) instead because the battle engine knows that it was the magic command that gave that index.)