Difference between revisions of "FF7/Command data"

From Final Fantasy Inside
< FF7
Jump to navigation Jump to search
my_wiki>Halkun
m (KERNEL.BIN - Section 1: Command data format)
my_wiki>G
Line 3: Line 3:
 
This section contains the data for Menu commands. Each record is 16 bytes long.
 
This section contains the data for Menu commands. Each record is 16 bytes long.
  
<i>(Note:This is a stub, this information was lost when my hard drive died)
+
<i>(Note:This information has been provided by NFITC1. Please thank him for his hard work as reversing is a long and thankless task.}</i>
  
--[[User:Halkun|Halkun]] 21:18, 9 Mar 2005 (CST)</i>
 
  
 
+
{| border="0" cellpadding="3" cellspacing="1" style="background: rgb(0,0,0)"  
{| border="0" cellpadding="3" cellspacing="1" style="background: rgb(0,0,0)" align="center"
 
 
! style="background:rgb(204,204,204); width:50px;" align="center" | Offset
 
! style="background:rgb(204,204,204); width:50px;" align="center" | Offset
 
! style="background:rgb(204,204,204); width:50px;" | Length
 
! style="background:rgb(204,204,204); width:50px;" | Length
 
! style="background:rgb(204,204,204); width:275px;" colspan="2" | Description
 
! style="background:rgb(204,204,204); width:275px;" colspan="2" | Description
 
|-
 
|-
|style="background:rgb(255,255,255)" align="center" | &nbsp;
+
|style="background:rgb(255,255,255)" align="center" | 0x00
 +
|style="background:rgb(255,255,255)" | 1 byte
 +
|style="background:rgb(255,255,255)" | Initial Cursor Action*
 
|style="background:rgb(255,255,255)" | &nbsp;
 
|style="background:rgb(255,255,255)" | &nbsp;
 +
|-
 +
|style="background:rgb(255,255,255)" align="center" | 0x01
 +
|style="background:rgb(255,255,255)" | 1 byte
 +
|style="background:rgb(255,255,255)" | Force Targeting**
 
|style="background:rgb(255,255,255)" | &nbsp;
 
|style="background:rgb(255,255,255)" | &nbsp;
 +
|-
 +
|style="background:rgb(255,255,255)" align="center" | 0x02
 +
|style="background:rgb(255,255,255)" | 2 bytes
 +
|style="background:rgb(255,255,255)" | Unknown (Always [FFh])
 
|style="background:rgb(255,255,255)" | &nbsp;
 
|style="background:rgb(255,255,255)" | &nbsp;
 
|-
 
|-
|style="background:rgb(255,255,255)" align="center" | &nbsp;
+
|style="background:rgb(255,255,255)" align="center" | 0x04
|style="background:rgb(255,255,255)" | &nbsp;
+
|style="background:rgb(255,255,255)" | 2 bytes
 +
|style="background:rgb(255,255,255)" | Single Target Camera
 
|style="background:rgb(255,255,255)" | &nbsp;
 
|style="background:rgb(255,255,255)" | &nbsp;
 +
|-
 +
|style="background:rgb(255,255,255)" align="center" | 0x04
 +
|style="background:rgb(255,255,255)" | 2 bytes
 +
|style="background:rgb(255,255,255)" | Multiple Targets Camera
 
|style="background:rgb(255,255,255)" | &nbsp;
 
|style="background:rgb(255,255,255)" | &nbsp;
 +
|}
 +
<nowiki>*Initial Cursor Action:</nowiki>
 +
The different values will tell it what to do or what menu to bring up:
 +
 +
{|border="1"
 +
|-
 +
!style="background:rgb(204,204,204);" align="center" |Value
 +
!style="background:rgb(204,204,204);" align="center" |Effect
 +
|-
 +
|0h
 +
|Perform command, using selected target
 +
|-
 +
|1h
 +
|Magic Menu
 +
|-
 +
|2h
 +
|Summon Menu
 +
|-
 +
|3h
 +
|Item Menu
 +
|-
 +
|4h
 +
|E.Skill Menu
 +
|-
 +
|5h
 +
|Throw Menu
 +
|-
 +
|6h
 +
|Limit Menu
 +
|-
 +
|7h
 +
|Start on enemy
 +
|-
 +
|8h
 +
|W-Item Menu
 +
|-
 +
|9h
 +
|W-Magic Menu
 +
|-
 +
|Ah
 +
|W-Summon Menu
 +
|-
 +
|Bh
 +
|Coin Menu
 +
|}
 +
 +
Note: If this value is 0h and Target is NULL (FFh) then the action will be performed without showing the cursor.
 +
 +
<nowiki>** Targeting data:</nowiki>
 +
This is the targeting data used throughout the battle engine to determine which battle participant (PCs and monsters alike) to perform damage calculation upon. It is stored as an 8-bit bitmask:
 +
{|border="1"
 
|-
 
|-
|style="background:rgb(255,255,255)" align="center" | &nbsp;
+
!style="background:rgb(204,204,204); " align="center" |Bitmask
|style="background:rgb(255,255,255)" | &nbsp;
+
!style="background:rgb(204,204,204); " align="center" |Effect
|style="background:rgb(255,255,255)" | &nbsp;
 
|style="background:rgb(255,255,255)" | &nbsp;
 
 
|-
 
|-
|style="background:rgb(255,255,255)" align="center" | &nbsp;
+
|01h
|style="background:rgb(255,255,255)" | &nbsp;
+
|Enable selection. Without this, the target cannot be changed from the participant performing the command.
|style="background:rgb(255,255,255)" | &nbsp;
 
|style="background:rgb(255,255,255)" | &nbsp;
 
 
|-
 
|-
|style="background:rgb(255,255,255)" align="center" | &nbsp;
+
|02h
|style="background:rgb(255,255,255)" | &nbsp;
+
|Start on Enemies. This will default the target to the first member of the opposing row.
|style="background:rgb(255,255,255)" | &nbsp;
 
|style="background:rgb(255,255,255)" | &nbsp;
 
 
|-
 
|-
|style="background:rgb(255,255,255)" align="center" | &nbsp;
+
|04h
|style="background:rgb(255,255,255)" | &nbsp;
+
|Multiple by default. This will select all targets on a row.
|style="background:rgb(255,255,255)" | &nbsp;
 
|style="background:rgb(255,255,255)" | &nbsp;
 
 
|-
 
|-
|style="background:rgb(255,255,255)" align="center" | &nbsp;
+
|08h
|style="background:rgb(255,255,255)" | &nbsp;
+
|Multiple "toggle". This will enable toggling between a single target or multiple targets.
|style="background:rgb(255,255,255)" | &nbsp;
+
Magics that have this enabled must be linked to an "All" to be multiple. Commands must have a Mega-All.
|style="background:rgb(255,255,255)" | &nbsp;
 
 
|-
 
|-
|style="background:rgb(255,255,255)" align="center" | &nbsp;
+
|10h
|style="background:rgb(255,255,255)" | &nbsp;
+
|One side only. This will not let you choose another row other than the one defined by 02h.
|style="background:rgb(255,255,255)" | &nbsp;
 
|style="background:rgb(255,255,255)" | &nbsp;
 
 
|-
 
|-
|style="background:rgb(255,255,255)" align="center" | &nbsp;
+
|20h
|style="background:rgb(255,255,255)" | &nbsp;
+
|Not used. No effect?
|style="background:rgb(255,255,255)" | &nbsp;
 
|style="background:rgb(255,255,255)" | &nbsp;
 
 
|-
 
|-
|style="background:rgb(255,255,255)" align="center" | &nbsp;
+
|40h
|style="background:rgb(255,255,255)" | &nbsp;
+
|All participants. Targets all available targets in the battle.
|style="background:rgb(255,255,255)" | &nbsp;
 
|style="background:rgb(255,255,255)" | &nbsp;
 
 
|-
 
|-
|style="background:rgb(255,255,255)" align="center" | &nbsp;
+
|80h
|style="background:rgb(255,255,255)" | &nbsp;
+
|Random target. Choose, from among selected targets, one to perform damage calculation upon.
|style="background:rgb(255,255,255)" | &nbsp;
+
|}
|style="background:rgb(255,255,255)" | &nbsp;
 

Revision as of 07:46, 18 October 2008

KERNEL.BIN - Section 1: Command data format

This section contains the data for Menu commands. Each record is 16 bytes long.

(Note:This information has been provided by NFITC1. Please thank him for his hard work as reversing is a long and thankless task.}


Offset Length Description
0x00 1 byte Initial Cursor Action*  
0x01 1 byte Force Targeting**  
0x02 2 bytes Unknown (Always [FFh])  
0x04 2 bytes Single Target Camera  
0x04 2 bytes Multiple Targets Camera  

*Initial Cursor Action: The different values will tell it what to do or what menu to bring up:

Value Effect
0h Perform command, using selected target
1h Magic Menu
2h Summon Menu
3h Item Menu
4h E.Skill Menu
5h Throw Menu
6h Limit Menu
7h Start on enemy
8h W-Item Menu
9h W-Magic Menu
Ah W-Summon Menu
Bh Coin Menu

Note: If this value is 0h and Target is NULL (FFh) then the action will be performed without showing the cursor.

** Targeting data: This is the targeting data used throughout the battle engine to determine which battle participant (PCs and monsters alike) to perform damage calculation upon. It is stored as an 8-bit bitmask:

Bitmask Effect
01h Enable selection. Without this, the target cannot be changed from the participant performing the command.
02h Start on Enemies. This will default the target to the first member of the opposing row.
04h Multiple by default. This will select all targets on a row.
08h Multiple "toggle". This will enable toggling between a single target or multiple targets.

Magics that have this enabled must be linked to an "All" to be multiple. Commands must have a Mega-All.

10h One side only. This will not let you choose another row other than the one defined by 02h.
20h Not used. No effect?
40h All participants. Targets all available targets in the battle.
80h Random target. Choose, from among selected targets, one to perform damage calculation upon.