Difference between revisions of "FF7/Kernel/Kernel.bin"

From Final Fantasy Inside
< FF7‎ | Kernel
Jump to navigation Jump to search
my_wiki>Synergy Blades
(KERNEL.BIN Section formats)
my_wiki>Synergy Blades
m
Line 1: Line 1:
 +
== Important Files ==
 +
 
[[Image:Gears_img_5.png]]
 
[[Image:Gears_img_5.png]]
  
== The KERNEL.BIN Archive. ==
+
== The KERNEL.BIN Archive ==
  
 
The file /INIT/KERNEL.BIN is in BIN-GZIP format. This format is explained later in this document. It consists of 27 gziped sections concatenated together with a 6 byte header for each. This file is the same both on the PC and PSX versions. This holds all the static data and menu text for the game, with a look up table at the beginning of the section. Sections 10-27 are FF Text files.
 
The file /INIT/KERNEL.BIN is in BIN-GZIP format. This format is explained later in this document. It consists of 27 gziped sections concatenated together with a 6 byte header for each. This file is the same both on the PC and PSX versions. This holds all the static data and menu text for the game, with a look up table at the beginning of the section. Sections 10-27 are FF Text files.
Line 7: Line 9:
 
The KERNEL.BIN file consists of the following sections.
 
The KERNEL.BIN file consists of the following sections.
  
<table CELLSPACING="0" style="margin-bottom: 53px;">
+
<table cellspacing="1" cellpadding="3" style="background: rgb(0, 0, 0);">
 
<tr>
 
<tr>
<th style="border: 1px solid rgb(0, 0, 0); text-align: center; vertical-align: middle; width: 37px; height: 26px; background-color: rgb(204, 204, 204);">
+
<th style="text-align: center; vertical-align: middle; width: 50px; height: 26px; background-color: rgb(204, 204, 204);">File</th>
File</th>
+
<th style="vertical-align: middle; width: 175px; height: 26px; background-color: rgb(204, 204, 204);">Data</th>
<th style="border: 1px solid rgb(0, 0, 0); vertical-align: middle; width: 199px; height: 26px; background-color: rgb(204, 204, 204);">
+
<th colspan="2" style="vertical-align: middle; width: 60px; height: 26px; background-color: rgb(204, 204, 204);">Offset</th>
Data</th>
 
<th style="border: 1px solid rgb(0, 0, 0); vertical-align: middle; width: 66px; height: 26px; background-color: rgb(204, 204, 204);">
 
Offset</th>
 
 
</tr>
 
</tr>
 
+
<tr style="background: rgb(255, 255, 255); height: 25px;">
<tr>
+
<td style="text-align: center; height: 25px;">1</td>
<td style="border: 1px solid rgb(0, 0, 0); text-align: center; width: 37px; height: 25px;">
+
<td style="height: 25px;">Command data</td>
1</td>
+
<td style="height: 25px;">0x0006</td>
<td style="border: 1px solid rgb(0, 0, 0); width: 199px; height: 25px;">
 
Command data</td>
 
<td style="border: 1px solid rgb(0, 0, 0); width: 66px; height: 25px;">
 
0x0006</td>
 
 
</tr>
 
</tr>
 
+
<tr style="background: rgb(255, 255, 255); height: 25px;">
<tr>
+
<td style="text-align: center; height: 25px;">2</td>
<td style="border: 1px solid rgb(0, 0, 0); text-align: center; width: 37px; height: 25px;">
+
<td style="height: 25px;">Attack data</td>
2</td>
+
<td style="height: 25px;">0x0086</td>
<td style="border: 1px solid rgb(0, 0, 0); width: 199px; height: 25px;">
 
Attack data</td>
 
<td style="border: 1px solid rgb(0, 0, 0); width: 66px; height: 25px;">
 
0x0086</td>
 
 
</tr>
 
</tr>
 
+
<tr style="background: rgb(255, 255, 204);">
<tr>
+
<td style="text-align: center; height: 25px;">3</td>
<td style="border: 1px solid rgb(0, 0, 0); text-align: center; width: 37px; height: 25px; background-color: rgb(255, 255, 204);">
+
<td style="height: 25px;">Unknown (Savemap?)</td>
3</td>
+
<td style="height: 25px;">0x063A</td>
<td style="border: 1px solid rgb(0, 0, 0); width: 199px; height: 25px; background-color: rgb(255, 255, 204);">
 
Unknown (Savemap?)</td>
 
<td style="border: 1px solid rgb(0, 0, 0); width: 66px; height: 25px; background-color: rgb(255, 255, 204);">
 
0x063A</td>
 
 
</tr>
 
</tr>
 
+
<tr style="background: rgb(255, 255, 255);">
<tr>
+
<td style="text-align: center; height: 25px;">4</td>
<td style="border: 1px solid rgb(0, 0, 0); text-align: center; width: 37px; height: 25px;">
+
<td style="height: 25px;">Character starting stats</td>
4</td>
+
<td style="height: 25px;">0x0F7F</td>
<td style="border: 1px solid rgb(0, 0, 0); width: 199px; height: 25px;">
 
Character starting stats</td>
 
<td style="border: 1px solid rgb(0, 0, 0); width: 66px; height: 25px;">
 
0x0F7F</td>
 
 
</tr>
 
</tr>
 
+
<tr style="background: rgb(255, 255, 255);">
<tr>
+
<td style="text-align: center; height: 25px;">5</td>
<td style="border: 1px solid rgb(0, 0, 0); text-align: center; width: 37px; height: 25px;">
+
<td style="height: 25px;">Item data</td>
5</td>
+
<td style="height: 25px;">0x111B</td>
<td style="border: 1px solid rgb(0, 0, 0); width: 199px; height: 25px;">
 
Item data</td>
 
<td style="border: 1px solid rgb(0, 0, 0); width: 66px; height: 25px;">
 
0x111B</td>
 
 
</tr>
 
</tr>
 
+
<tr style="background: rgb(255, 255, 255);">
<tr>
+
<td style="text-align: center; height: 25px;">6</td>
<td style="border: 1px solid rgb(0, 0, 0); text-align: center; width: 37px; height: 25px;">
+
<td style="height: 25px;">Weapon data</td>
6</td>
+
<td style="height: 25px;">0x137A</td>
<td style="border: 1px solid rgb(0, 0, 0); width: 199px; height: 25px;">
 
Weapon data</td>
 
<td style="border: 1px solid rgb(0, 0, 0); width: 66px; height: 25px;">
 
0x137A</td>
 
 
</tr>
 
</tr>
 
+
<tr style="background: rgb(255, 255, 255);">
<tr>
+
<td style="text-align: center; height: 25px;">7</td>
<td style="border: 1px solid rgb(0, 0, 0); text-align: center; width: 37px; height: 25px;">
+
<td style="height: 25px;">Armor data</td>
7</td>
+
<td style="height: 25px;">0x1A30</td>
<td style="border: 1px solid rgb(0, 0, 0); width: 199px; height: 25px;">
 
Armor data</td>
 
<td style="border: 1px solid rgb(0, 0, 0); width: 66px; height: 25px;">
 
0x1A30</td>
 
 
</tr>
 
</tr>
 
+
<tr style="background: rgb(255, 255, 255);">
<tr>
+
<td style="text-align: center; height: 25px;">8</td>
<td style="border: 1px solid rgb(0, 0, 0); text-align: center; width: 37px; height: 25px;">
+
<td style="height: 25px;">Accessory data</td>
8</td>
+
<td style="height: 25px;">0x1B73</td>
<td style="border: 1px solid rgb(0, 0, 0); width: 199px; height: 25px;">
 
Accessory data</td>
 
<td style="border: 1px solid rgb(0, 0, 0); width: 66px; height: 25px;">
 
0x1B73</td>
 
 
</tr>
 
</tr>
 
+
<tr style="background: rgb(255, 255, 255);">
<tr>
+
<td style="text-align: center; height: 25px;">9</td>
<td style="border: 1px solid rgb(0, 0, 0); text-align: center; width: 37px; height: 25px;">
+
<td style="height: 25px;">Materia data</td>
9</td>
+
<td style="height: 25px;">0x1C11</td>
<td style="border: 1px solid rgb(0, 0, 0); width: 199px; height: 25px;">
 
Materia data</td>
 
<td style="border: 1px solid rgb(0, 0, 0); width: 66px; height: 25px;">
 
0x1C11</td>
 
 
</tr>
 
</tr>
 
+
<tr style="background: rgb(255, 255, 255);">
<tr>
+
<td style="text-align: center; height: 25px;">10</td>
<td style="border: 1px solid rgb(0, 0, 0); text-align: center; width: 37px; height: 25px;">
+
<td style="height: 25px;">Command Descriptions</td>
10</td>
+
<td style="height: 25px;">0x1F32</td>
<td style="border: 1px solid rgb(0, 0, 0); width: 199px; height: 25px;">
 
Command Descriptions</td>
 
<td style="border: 1px solid rgb(0, 0, 0); width: 66px; height: 25px;">
 
0x1F32</td>
 
 
</tr>
 
</tr>
 
+
<tr style="background: rgb(255, 255, 255);">
<tr>
+
<td style="text-align: center; height: 25px;">11</td>
<td style="border: 1px solid rgb(0, 0, 0); text-align: center; width: 37px; height: 25px;">
+
<td style="height: 25px;">Magic Descriptions</td>
11</td>
+
<td style="height: 25px;">0x2199</td>
<td style="border: 1px solid rgb(0, 0, 0); width: 199px; height: 25px;">
 
Magic Descriptions</td>
 
<td style="border: 1px solid rgb(0, 0, 0); width: 66px; height: 25px;">
 
0x2119</td>
 
 
</tr>
 
</tr>
 
+
<tr style="background: rgb(255, 255, 255);">
<tr>
+
<td style="text-align: center; height: 25px;">12</td>
<td style="border: 1px solid rgb(0, 0, 0); text-align: center; width: 37px; height: 25px;">
+
<td style="height: 25px;">Item Descriptions</td>
12</td>
+
<td style="height: 25px;">0x28D4</td>
<td style="border: 1px solid rgb(0, 0, 0); width: 199px; height: 25px;">
 
Item Descriptions</td>
 
<td style="border: 1px solid rgb(0, 0, 0); width: 66px; height: 25px;">
 
0x28D4</td>
 
 
</tr>
 
</tr>
 
+
<tr style="background: rgb(255, 255, 255);">
<tr>
+
<td style="text-align: center; height: 25px;">13</td>
<td style="border: 1px solid rgb(0, 0, 0); text-align: center; width: 37px; height: 25px;">
+
<td style="height: 25px;">Weapon Descriptions</td>
13</td>
+
<td style="height: 25px;">0x2EE2</td>
<td style="border: 1px solid rgb(0, 0, 0); width: 199px; height: 25px;">
 
Weapon Descriptions</td>
 
<td style="border: 1px solid rgb(0, 0, 0); width: 66px; height: 25px;">
 
0x2EE2</td>
 
 
</tr>
 
</tr>
 
+
<tr style="background: rgb(255, 255, 255);">
<tr>
+
<td style="text-align: center; height: 25px;">14</td>
<td style="border: 1px solid rgb(0, 0, 0); text-align: center; width: 37px; height: 25px;">
+
<td style="height: 25px;">Armor Descriptions</td>
14</td>
+
<td style="height: 25px;">0x307B</td>
<td style="border: 1px solid rgb(0, 0, 0); width: 199px; height: 25px;">
 
Armor Descriptions</td>
 
<td style="border: 1px solid rgb(0, 0, 0); width: 66px; height: 25px;">
 
0x307B</td>
 
 
</tr>
 
</tr>
 
+
<tr style="background: rgb(255, 255, 255);">
<tr>
+
<td style="text-align: center; height: 25px;">15</td>
<td style="border: 1px solid rgb(0, 0, 0); text-align: center; width: 37px; height: 25px;">
+
<td style="height: 25px;">Accessory Descriptions</td>
15</td>
+
<td style="height: 25px;">0x315F</td>
<td style="border: 1px solid rgb(0, 0, 0); width: 199px; height: 25px;">
 
Accessory Descriptions</td>
 
<td style="border: 1px solid rgb(0, 0, 0); width: 66px; height: 25px;">
 
0x315F</td>
 
 
</tr>
 
</tr>
 
+
<tr style="background: rgb(255, 255, 255);">
<tr>
+
<td style="text-align: center; height: 25px;">16</td>
<td style="border: 1px solid rgb(0, 0, 0); text-align: center; width: 37px; height: 25px;">
+
<td style="height: 25px;">Materia Descriptions</td>
16</td>
+
<td style="height: 25px;">0x3384</td>
<td style="border: 1px solid rgb(0, 0, 0); width: 199px; height: 25px;">
 
Materia Descriptions</td>
 
<td style="border: 1px solid rgb(0, 0, 0); width: 66px; height: 25px;">
 
0x3384</td>
 
 
</tr>
 
</tr>
 
+
<tr style="background: rgb(255, 255, 255);">
<tr>
+
<td style="text-align: center; height: 25px;">17</td>
<td style="border: 1px solid rgb(0, 0, 0); text-align: center; width: 37px; height: 25px;">
+
<td style="height: 25px;">Key Item Descriptions</td>
17</td>
+
<td style="height: 25px;">0x3838</td>
<td style="border: 1px solid rgb(0, 0, 0); width: 199px; height: 25px;">
 
Key Item Description</td>
 
<td style="border: 1px solid rgb(0, 0, 0); width: 66px; height: 25px;">
 
0x3838</td>
 
 
</tr>
 
</tr>
 
+
<tr style="background: rgb(255, 255, 255);">
<tr>
+
<td style="text-align: center; height: 25px;">18</td>
<td style="border: 1px solid rgb(0, 0, 0); text-align: center; width: 37px; height: 25px;">
+
<td style="height: 25px;">Command Names</td>
18</td>
+
<td style="height: 25px;">0x3BE2</td>
<td style="border: 1px solid rgb(0, 0, 0); width: 199px; height: 25px;">
 
Command Names</td>
 
<td style="border: 1px solid rgb(0, 0, 0); width: 66px; height: 25px;">
 
0x3BE2</td>
 
 
</tr>
 
</tr>
 
+
<tr style="background: rgb(255, 255, 255);">
<tr>
+
<td style="text-align: center; height: 25px;">19</td>
<td style="border: 1px solid rgb(0, 0, 0); text-align: center; width: 37px; height: 25px;">
+
<td style="height: 25px;">Magic Names</td>
19</td>
+
<td style="height: 25px;">0x3CCA</td>
<td style="border: 1px solid rgb(0, 0, 0); width: 199px; height: 25px;">
 
Magic Names</td>
 
<td style="border: 1px solid rgb(0, 0, 0); width: 66px; height: 25px;">
 
0x3CCA</td>
 
 
</tr>
 
</tr>
 
+
<tr style="background: rgb(255, 255, 255);">
<tr>
+
<td style="text-align: center; height: 25px;">20</td>
<td style="border: 1px solid rgb(0, 0, 0); text-align: center; width: 37px; height: 25px;">
+
<td style="height: 25px;">Item Names</td>
20</td>
+
<td style="height: 25px;">0x4293</td>
<td style="border: 1px solid rgb(0, 0, 0); width: 199px; height: 25px;">
 
Item Names</td>
 
<td style="border: 1px solid rgb(0, 0, 0); width: 66px; height: 25px;">
 
0x4293</td>
 
 
</tr>
 
</tr>
 
+
<tr style="background: rgb(255, 255, 255);">
<tr>
+
<td style="text-align: center; height: 25px;">21</td>
<td style="border: 1px solid rgb(0, 0, 0); text-align: center; width: 37px; height: 25px;">
+
<td style="height: 25px;">Weapon Names</td>
21</td>
+
<td style="height: 25px;">0x4651</td>
<td style="border: 1px solid rgb(0, 0, 0); width: 199px; height: 25px;">
 
Weapon Names</td>
 
<td style="border: 1px solid rgb(0, 0, 0); width: 66px; height: 25px;">
 
0x4651</td>
 
 
</tr>
 
</tr>
 
+
<tr style="background: rgb(255, 255, 255);">
<tr>
+
<td style="text-align: center; height: 25px;">22</td>
<td style="border: 1px solid rgb(0, 0, 0); text-align: center; width: 37px; height: 25px;">
+
<td style="height: 25px;">Armor Names</td>
22</td>
+
<td style="height: 25px;">0x4B02</td>
<td style="border: 1px solid rgb(0, 0, 0); width: 199px; height: 25px;">
 
Armor Names</td>
 
<td style="border: 1px solid rgb(0, 0, 0); width: 66px; height: 25px;">
 
0x4B02</td>
 
 
</tr>
 
</tr>
 
+
<tr style="background: rgb(255, 255, 255);">
<tr>
+
<td style="text-align: center; height: 25px;">23</td>
<td style="border: 1px solid rgb(0, 0, 0); text-align: center; width: 37px; height: 25px;">
+
<td style="height: 25px;">Accessory Names</td>
23</td>
+
<td style="height: 25px;">0x4C4B</td>
<td style="border: 1px solid rgb(0, 0, 0); width: 199px; height: 25px;">
 
Accessory Names</td>
 
<td style="border: 1px solid rgb(0, 0, 0); width: 66px; height: 25px;">
 
0x4C4B</td>
 
 
</tr>
 
</tr>
 
+
<tr style="background: rgb(255, 255, 255);">
<tr>
+
<td style="text-align: center; height: 25px;">24</td>
<td style="border: 1px solid rgb(0, 0, 0); text-align: center; width: 37px; height: 25px;">
+
<td style="height: 25px;">Materia Names</td>
24</td>
+
<td style="height: 25px;">0x4D90</td>
<td style="border: 1px solid rgb(0, 0, 0); width: 199px; height: 25px;">
 
Materia Names</td>
 
<td style="border: 1px solid rgb(0, 0, 0); width: 66px; height: 25px;">
 
0x4D90</td>
 
 
</tr>
 
</tr>
 
+
<tr style="background: rgb(255, 255, 255);">
<tr>
+
<td style="text-align: center; height: 25px;">25</td>
<td style="border: 1px solid rgb(0, 0, 0); text-align: center; width: 37px; height: 25px;">
+
<td style="height: 25px;">Key Item Names</td>
25</td>
+
<td style="height: 25px;">0x5040</td>
<td style="border: 1px solid rgb(0, 0, 0); width: 199px; height: 25px;">
 
Key Item Names</td>
 
<td style="border: 1px solid rgb(0, 0, 0); width: 66px; height: 25px;">
 
0x5040</td>
 
 
</tr>
 
</tr>
 
+
<tr style="background: rgb(255, 255, 255);">
<tr>
+
<td style="text-align: center; height: 25px;">26</td>
<td style="border: 1px solid rgb(0, 0, 0); text-align: center; width: 37px; height: 25px;">
+
<td style="height: 25px;">Battle and Battle-Screen Text</td>
26</td>
+
<td style="height: 25px;">0x5217</td>
<td style="border: 1px solid rgb(0, 0, 0); width: 199px; height: 25px;">
 
Battle and Battle-Screen Text</td>
 
<td style="border: 1px solid rgb(0, 0, 0); width: 66px; height: 25px;">
 
0x5217</td>
 
 
</tr>
 
</tr>
 
+
<tr style="background: rgb(255, 255, 255);">
<tr>
+
<td style="text-align: center; height: 25px;">27</td>
<td style="border: 1px solid rgb(0, 0, 0); text-align: center; width: 37px; height: 25px;">
+
<td style="height: 25px;">Summon Attack Names</td>
27</td>
+
<td style="height: 25px;">0x5692</td>
<td style="border: 1px solid rgb(0, 0, 0); width: 199px; height: 25px;">
 
Summon Attack Names</td>
 
<td style="border: 1px solid rgb(0, 0, 0); width: 66px; height: 25px;">
 
0x5692</td>
 
 
</tr>
 
</tr>
 
</table>
 
</table>
Line 270: Line 161:
  
  
<table cellspacing="1" style="margin-bottom: 53px; background: rgb(0, 0, 0);">
+
<table cellspacing="1" style="background: rgb(0, 0, 0);">
 
<tr>
 
<tr>
 
<th style="text-align: center; vertical-align: middle; width: 50px; height: 26px; background-color: rgb(204, 204, 204);">
 
<th style="text-align: center; vertical-align: middle; width: 50px; height: 26px; background-color: rgb(204, 204, 204);">
Line 281: Line 172:
  
 
<tr style="background: rgb(255, 255, 255);">
 
<tr style="background: rgb(255, 255, 255);">
<td style="text-align: center" style="margin-bottom: 53px;">
+
<td style="text-align: center">&nbsp;</td>
&nbsp;
+
<td style="height: 25px;">&nbsp;</td>
</td>
+
<td style="width: 125px; height: 25px;">&nbsp;</td>
<td>
+
<td style="width: 125px; height: 25px;">&nbsp;</td>
&nbsp;
 
</td>
 
<td style="width: 125px">
 
&nbsp;
 
</td>
 
<td style="width: 125px">
 
&nbsp;
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background: rgb(255, 255, 255);">
 
<tr style="background: rgb(255, 255, 255);">
<td style="text-align: center" style="margin-bottom: 53px;">
+
<td style="text-align: center">&nbsp;</td>
&nbsp;
+
<td style="height: 25px;">&nbsp;</td>
</td>
+
<td style="height: 25px;">&nbsp;</td>
<td>
+
<td style="height: 25px;">&nbsp;</td>
&nbsp;
 
</td>
 
<td>
 
&nbsp;
 
</td>
 
<td>
 
&nbsp;
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background: rgb(255, 255, 255);">
 
<tr style="background: rgb(255, 255, 255);">
<td style="text-align: center" style="margin-bottom: 53px;">
+
<td style="text-align: center; height: 25px; margin-bottom: 53px;">&nbsp;</td>
&nbsp;
+
<td style="height: 25px;">&nbsp;</td>
</td>
+
<td style="height: 25px;">&nbsp;</td>
<td>
+
<td style="height: 25px;">&nbsp;</td>
&nbsp;
 
</td>
 
<td>
 
&nbsp;
 
</td>
 
<td>
 
&nbsp;
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background: rgb(255, 255, 255);">
 
<tr style="background: rgb(255, 255, 255);">
<td style="text-align: center" style="margin-bottom: 53px;">
+
<td style="text-align: center" style="margin-bottom: 53px;">&nbsp;</td>
&nbsp;
+
<td style="height: 25px;">&nbsp;</td style="height: 25px;">
</td>
+
<td style="height: 25px;">&nbsp;</td>
<td>
+
<td style="height: 25px;">&nbsp;</td>
&nbsp;
 
</td>
 
<td>
 
&nbsp;
 
</td>
 
<td>
 
&nbsp;
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background: rgb(255, 255, 255);">
 
<tr style="background: rgb(255, 255, 255);">
<td style="text-align: center" style="margin-bottom: 53px;">
+
<td style="text-align: center" style="margin-bottom: 53px;">&nbsp;</td>
&nbsp;
+
<td style="height: 25px;">&nbsp;</td style="height: 25px;">
</td>
+
<td style="height: 25px;">&nbsp;</td>
<td>
+
<td style="height: 25px;">&nbsp;</td>
&nbsp;
 
</td>
 
<td>
 
&nbsp;
 
</td>
 
<td>
 
&nbsp;
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background: rgb(255, 255, 255);">
 
<tr style="background: rgb(255, 255, 255);">
<td style="text-align: center" style="margin-bottom: 53px;">
+
<td style="text-align: center" style="margin-bottom: 53px;">&nbsp;</td>
&nbsp;
+
<td style="height: 25px;">&nbsp;</td style="height: 25px;">
</td>
+
<td style="height: 25px;">&nbsp;</td>
<td>
+
<td style="height: 25px;">&nbsp;</td>
&nbsp;
 
</td>
 
<td>
 
&nbsp;
 
</td>
 
<td>
 
&nbsp;
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background: rgb(255, 255, 255);">
 
<tr style="background: rgb(255, 255, 255);">
<td style="text-align: center" style="margin-bottom: 53px;">
+
<td style="text-align: center" style="margin-bottom: 53px;">&nbsp;</td>
&nbsp;
+
<td style="height: 25px;">&nbsp;</td style="height: 25px;">
</td>
+
<td style="height: 25px;">&nbsp;</td>
<td>
+
<td style="height: 25px;">&nbsp;</td>
&nbsp;
 
</td>
 
<td>
 
&nbsp;
 
</td>
 
<td>
 
&nbsp;
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background: rgb(255, 255, 255);">
 
<tr style="background: rgb(255, 255, 255);">
<td style="text-align: center" style="margin-bottom: 53px;">
+
<td style="text-align: center" style="margin-bottom: 53px;">&nbsp;</td>
&nbsp;
+
<td style="height: 25px;">&nbsp;</td style="height: 25px;">
</td>
+
<td style="height: 25px;">&nbsp;</td>
<td>
+
<td style="height: 25px;">&nbsp;</td>
&nbsp;
 
</td>
 
<td>
 
&nbsp;
 
</td>
 
<td>
 
&nbsp;
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background: rgb(255, 255, 255);">
 
<tr style="background: rgb(255, 255, 255);">
<td style="text-align: center" style="margin-bottom: 53px;">
+
<td style="text-align: center" style="margin-bottom: 53px;">&nbsp;</td>
&nbsp;
+
<td style="height: 25px;">&nbsp;</td style="height: 25px;">
</td>
+
<td style="height: 25px;">&nbsp;</td>
<td>
+
<td style="height: 25px;">&nbsp;</td>
&nbsp;
 
</td>
 
<td>
 
&nbsp;
 
</td>
 
<td>
 
&nbsp;
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background: rgb(255, 255, 255);">
 
<tr style="background: rgb(255, 255, 255);">
<td style="text-align: center" style="margin-bottom: 53px;">
+
<td style="text-align: center" style="margin-bottom: 53px;">&nbsp;</td>
&nbsp;
+
<td style="height: 25px;">&nbsp;</td style="height: 25px;">
</td>
+
<td style="height: 25px;">&nbsp;</td>
<td>
+
<td style="height: 25px;">&nbsp;</td>
&nbsp;
 
</td>
 
<td>
 
&nbsp;
 
</td>
 
<td>
 
&nbsp;
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background: rgb(255, 255, 255);">
 
<tr style="background: rgb(255, 255, 255);">
<td style="text-align: center" style="margin-bottom: 53px;">
+
<td style="text-align: center" style="margin-bottom: 53px;">&nbsp;</td>
&nbsp;
+
<td style="height: 25px;">&nbsp;</td style="height: 25px;">
</td>
+
<td style="height: 25px;">&nbsp;</td>
<td>
+
<td style="height: 25px;">&nbsp;</td>
&nbsp;
 
</td>
 
<td>
 
&nbsp;
 
</td>
 
<td>
 
&nbsp;
 
</td>
 
 
</tr>
 
</tr>
 
</table>
 
</table>
 +
 +
 
=== Section 2: Attack data format ===
 
=== Section 2: Attack data format ===
  
Line 461: Line 266:
  
 
<tr style="background-color: rgb(255, 255, 204);">
 
<tr style="background-color: rgb(255, 255, 204);">
<td style="text-align: center" style="margin-bottom: 53px;">
+
<td style="text-align: center; margin-bottom: 53px; height: 25px;">0x00</td>
0x00
+
<td>4 bytes</td>
</td>
+
<td colspan="2" style="width: 125px;">Unknown</td>
<td>
 
4 bytes
 
</td>
 
<td colspan="2" style="width: 125px">
 
Unknown
 
</td>
 
 
</tr>
 
</tr>
  
<tr style="background-color: rgb(255, 255, 255);">
+
<tr style="background-color: rgb(255, 255, 255); height: 25px;">
<td style="text-align: center" style="margin-bottom: 53px;">
+
<td style="text-align: center" style="margin-bottom: 53px; height: 25px;">0x04</td>
0x04
+
<td style="height: 25px;">1 bytes</td>
</td>
+
<td colspan="2" style="width: 125px; height: 25px;">Casting cost</td>
<td>
 
1 bytes
 
</td>
 
<td colspan="2" style="width: 125px">
 
Casting cost
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 204);">
 
<tr style="background-color: rgb(255, 255, 204);">
<td style="text-align: center" style="margin-bottom: 53px;">
+
<td style="text-align: center" style="margin-bottom: 53px; height: 25px;">0x05</td>
0x05
+
<td style="height: 25px;">5 bytes</td>
</td>
+
<td colspan="2" style="width: 125px; height: 25px;">Unknown</td>
<td>
 
5 bytes
 
</td>
 
<td colspan="2" style="width: 125px">
 
Unknown
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="text-align: center" style="margin-bottom: 53px;">
+
<td style="text-align: center" style="margin-bottom: 53px; height: 25px;">0x0A</td>
0x0A
+
<td style="height: 25px;">1 bytes</td>
</td>
+
<td colspan="2" style="width: 125px; height: 25px;">Attack type</td>
<td>
 
1 bytes
 
</td>
 
<td colspan="2" style="width: 125px">
 
Attack type
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="text-align: center" style="margin-bottom: 53px;">
+
<td style="text-align: center" style="margin-bottom: 53px; height: 25px;">0x0B</td>
0x0B
+
<td style="height: 25px;">2 bytes</td>
</td>
+
<td colspan="2" style="width: 125px; height: 25px;">Attack attribute</td>
<td>
 
2 bytes
 
</td>
 
<td colspan="2" style="width: 125px">
 
Attack attribute
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td colspan="2" rowspan="16" style="text-align: center" style="background-color: rgb(204, 204, 255); margin-bottom: 53px;" >
+
<td colspan="2" rowspan="16" style="text-align: center; height: 25px; background-color: rgb(204, 204, 255); margin-bottom: 53px;" >&nbsp;</td>
&nbsp;
+
<td style="width: 110px; height: 25px;">0x0000</td>
</td>
+
<td style="width: 140px; height: 25px;">Escape/Exit-Type</td>
<td style="width: 110px">
 
0x0000
 
</td>
 
<td style="width: 140px">
 
Escape/Exit-Type
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="width: 110px">
+
<td style="width: 110px; height: 25px;">0x0001</td>
0x0001
+
<td style="width: 140px; height: 25px;">Ribbon-Like</td>
</td>
 
<td style="width: 140px">
 
Ribbon-Like
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="width: 110px">
+
<td style="width: 110px; height: 25px;">0x0003</td>
0x0003
+
<td style="width: 140px; height: 25px;background-color: rgb(255, 255, 204);">Enemy Skill (?)
</td>
 
<td style="width: 140px; background-color: rgb(255, 255, 204);">
 
Enemy Skill (?)
 
 
</td>
 
</td>
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="width: 110px">
+
<td style="width: 110px; height: 25px;">0x0005</td>
0x0005
+
<td style="width: 140px; height: 25px; background-color: rgb(255, 255, 204);">Enemy Skill (?)</td>
</td>
 
<td style="width: 140px; background-color: rgb(255, 255, 204);">
 
Enemy Skill (?)
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="width: 110px">
+
<td style="width: 110px; height: 25px;">0x0007</td>
0x0007
+
<td style="width: 140px; height: 25px;background-color: rgb(255, 255, 204);">Enemy Skill (?)</td>
</td>
 
<td style="width: 140px; background-color: rgb(255, 255, 204);">
 
Enemy Skill (?)
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="width: 110px">
+
<td style="width: 110px; height: 25px;">0x000D</td>
0x000D
+
<td style="width: 140px; height: 25px;">Restorative/Protective</td>
</td>
 
<td style="width: 140px">
 
Restorative/Protective
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="width: 110px">
+
<td style="width: 110px; height: 25px;">0x000F</td>
0x000F
+
<td style="width: 140px; height: 25px;">Status-giving/Elemental</td>
</td>
 
<td style="width: 140px">
 
Status-giving/Elemental
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="width: 110px">
+
<td style="width: 110px; height: 25px;">0x0011</td>
0x0011
+
<td style="width: 140px; height: 25px;">Shield</td>
</td>
 
<td style="width: 140px">
 
Shield
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="width: 110px">
+
<td style="width: 110px; height: 25px;">0x0013</td>
0x0013
+
<td style="width: 140px; height: 25px;">Limit Break</td>
</td>
 
<td style="width: 140px">
 
Limit Break
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="width: 110px">
+
<td style="width: 110px; height: 25px;">0x0015</td>
0x0015
+
<td style="width: 140px; height: 25px;">Cait Sith Limit Break</td>
</td>
 
<td style="width: 140px">
 
Cait Sith Limit Break
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="width: 110px">
+
<td style="width: 110px; height: 25px;">0x0017</td>
0x0017
+
<td style="width: 140px; height: 25px;">Summon</td>
</td>
 
<td style="width: 140px">
 
Summon
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="width: 110px">
+
<td style="width: 110px; height: 25px;">0x00C7</td>
0x00C7
+
<td style="width: 140px; height: 25px;">Roulette</td>
</td>
 
<td style="width: 140px">
 
Roulette
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="width: 110px">
+
<td style="width: 110px; height: 25px;">0x0097</td>
0x0097
+
<td style="width: 140px; height: 25px;">Multiple Strike Limit Breaks</td>
</td>
 
<td style="width: 140px">
 
Multiple Strike Limit Breaks
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="width: 110px">
+
<td style="width: 110px; height: 25px;">0xFF01</td>
0xFF01
+
<td style="width: 140px; height: 25px;">Phoenix Down</td>
</td>
 
<td style="width: 140px">
 
Phoenix Down
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="width: 110px">
+
<td style="width: 110px; height: 25px;">0xFF03</td>
0xFF03
+
<td style="width: 140px; height: 25px;">X-needles attack</td>
</td>
 
<td style="width: 140px">
 
X-needles attack
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="width: 110px">
+
<td style="width: 110px; height: 25px;">0xFF17</td>
0xFF17
+
<td style="width: 140px; height: 25px;">Final Limit Break</td>
</td>
 
<td style="width: 140px">
 
Final Limit Break
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="text-align: center" style="margin-bottom: 53px;">
+
<td style="text-align: center" style="margin-bottom: 53px;">0x0D</td>
0x0D
+
<td style="height: 25px;">1 byte</td>
</td>
+
<td colspan="2" style="width: 125px; height: 25px;">ID Number</td>
<td>
 
1 byte
 
</td>
 
<td colspan="2" style="width: 125px">
 
ID Number
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="text-align: center" style="margin-bottom: 53px;">
+
<td style="text-align: center" style="margin-bottom: 53px; height: 25px;">0x0E</td>
0x0E
+
<td style="height: 25px;">1 byte</td>
</td>
+
<td colspan="2" style="width: 125px; height: 25px;">Restore Apply</td>
<td>
 
1 byte
 
</td>
 
<td colspan="2" style="width: 125px">
 
Restore Apply
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="text-align: center" style="margin-bottom: 53px;">
+
<td style="text-align: center" style="margin-bottom: 53px; height: 25px;">0x0F</td>
0x0F
+
<td style="height: 25px;">1 byte</td>
</td>
+
<td colspan="2" style="width: 125px; height: 25px;">Strength</td>
<td>
 
1 byte
 
</td>
 
<td colspan="2" style="width: 125px">
 
Strength
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="text-align: center" style="margin-bottom: 53px;">
+
<td style="text-align: center" style="margin-bottom: 53px; height: 25px;">0x10</td>
0x10
+
<td style="height: 25px;">1 byte</td>
</td>
+
<td colspan="2" style="width: 125px; height: 25px;">Restore type</td>
<td>
 
1 byte
 
</td>
 
<td colspan="2" style="width: 125px">
 
Restore type
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td colspan="2" rowspan="4" style="text-align: center" style="background-color: rgb(204, 204, 255); margin-bottom: 53px;" >
+
<td colspan="2" rowspan="4" style="text-align: center" style="background-color: rgb(204, 204, 255); margin-bottom: 53px;" >&nbsp;</td>
&nbsp;
+
<td style="width: 110px; height: 25px;">0x00</td>
</td>
+
<td style="width: 140px; height: 25px;">Restore HP</td>
<td style="width: 110px">
 
0x00
 
</td>
 
<td style="width: 140px">
 
Restore HP
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="width: 110px">
+
<td style="width: 110px; height: 25px;">0x01</td>
0x01
+
<td style="width: 140px; height: 25px;">Restore MP</td>
</td>
 
<td style="width: 140px">
 
Restore MP
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="width: 110px">
+
<td style="width: 110px; height: 25px;">0x02</td>
0x02
+
<td style="width: 140px; height: 25px;">Restore Ailment</td>
</td>
 
<td style="width: 140px">
 
Restore Ailment
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="width: 110px">
+
<td style="width: 110px; height: 25px;">0xFF</td>
0xFF
+
<td style="width: 140px; height: 25px;">None</td>
</td>
 
<td style="width: 140px">
 
None
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 204);">
 
<tr style="background-color: rgb(255, 255, 204);">
<td style="text-align: center" style="margin-bottom: 53px;">
+
<td style="text-align: center" style="margin-bottom: 53px; height: 25px;">0x11</td>
0x11
+
<td style="height: 25px;">2 bytes</td>
</td>
+
<td colspan="2" style="width: 125px; height: 25px;">Unknown</td>
<td>
 
2 bytes
 
</td>
 
<td colspan="2" style="width: 125px">
 
Unknown
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="text-align: center" style="margin-bottom: 53px;">
+
<td style="text-align: center" style="margin-bottom: 53px; height: 25px;">0x13</td>
0x13
+
<td style="height: 25px;">1 byte</td>
</td>
+
<td colspan="2" style="width: 125px">Times attacking</td>
<td>
 
1 byte
 
</td>
 
<td colspan="2" style="width: 125px">
 
Times attacking
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="text-align: center" style="margin-bottom: 53px;">
+
<td style="text-align: center" style="margin-bottom: 53px; height: 25px;">0x14</td>
0x14
+
<td>4 bytes</td>
</td>
+
<td colspan="2" style="width: 125px; height: 25px;">Status</td>
<td>
 
4 bytes
 
</td>
 
<td colspan="2" style="width: 125px">
 
Status
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="text-align: center" style="margin-bottom: 53px;">
+
<td style="text-align: center" style="margin-bottom: 53px; height: 25px;">0x18</td>
0x18
+
<td style="height: 25px;">2 bytes</td>
</td>
+
<td colspan="2" style="width: 125px; height: 25px;">Element</td>
<td>
 
2 bytes
 
</td>
 
<td colspan="2" style="width: 125px">
 
Element
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 204);">
 
<tr style="background-color: rgb(255, 255, 204);">
<td style="text-align: center" style="margin-bottom: 53px;">
+
<td style="text-align: center" style="margin-bottom: 53px;">0x20</td>
0x20
+
<td style="height: 25px;">2 bytes</td>
</td>
+
<td colspan="2" style="width: 125px; height: 25px;">Unknown</td>
<td>
 
2 bytes
 
</td>
 
<td colspan="2" style="width: 125px">
 
Unknown
 
</td>
 
 
</tr>
 
</tr>
 +
</table>
  
</table>
 
 
=== Section 3: Savemap ===
 
=== Section 3: Savemap ===
  
Line 839: Line 477:
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="text-align: center" style="margin-bottom: 53px;">
+
<td style="text-align: center" style="margin-bottom: 53px;">0x00</td>
0x00
+
<td>8 bytes</td>
</td>
+
<td style="width: 100px">Unknown</td>
<td>
+
<td>Always 0xFFFFFFFF</td>
8 bytes
 
</td>
 
<td style="width: 100px">
 
Unknown
 
</td>
 
<td>
 
Always 0xFFFFFFFF
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="text-align: center" style="margin-bottom: 53px;">
+
<td style="text-align: center" style="margin-bottom: 53px;">0x08</td>
0x08
+
<td>2 bytes</td>
</td>
+
<td colspan="2" style="width: 275px; background-color: rgb(255, 255, 205);">Unknown</td>
<td>
 
2 bytes
 
</td>
 
<td colspan="2" style="width: 275px; background-color: rgb(255, 255, 205);">
 
Unknown
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="text-align: center" style="margin-bottom: 53px;">
+
<td style="text-align: center" style="margin-bottom: 53px;">0x0A</td>
0x0A
+
<td>1 byte</td>
</td>
+
<td colspan="2">Restriction Mask</td>
<td>
 
1 byte
 
</td>
 
<td colspan="2">
 
Restriction Mask
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td colspan="2" rowspan="10" style="text-align: center" style="margin-bottom: 53px; background-color: rgb(205, 205, 255);">
+
<td colspan="2" rowspan="10" style="text-align: center" style="margin-bottom: 53px; background-color: rgb(205, 205, 255);">&nbsp;</td>
&nbsp;
+
<td style="width:100px;">0xFF</td><td>
</td>
 
<td style="width:100px;">
 
0xFF
 
</td>
 
<td>
 
 
Appears in Item Menu. Does not appear in<br />
 
Appears in Item Menu. Does not appear in<br />
Battle Menu (Not usable at all)
+
Battle Menu (Not usable at all)</td>
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td>
+
<td>0xFE</td>
0xFE
+
<td>Appears in Battle Menu & Item Menu (Not<br />
</td>
+
usable at all)</td>
<td>
 
Appears in Battle Menu & Item Menu (Not<br />
 
usable at all)
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td>
+
<td>0xFD</td>
0xFD
+
<td>Appears in Item Menu. Does not appear in<br />
</td>
+
Battle Menu (Usable in Battle Menu) </td>
<td>
 
Appears in Item Menu. Does not appear in<br />
 
Battle Menu (Usable in Battle Menu)  
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td>
+
<td>0xFC</td><td>
0xFC
 
</td>
 
<td>
 
 
Appears in Battle Menu & Item Menu (Usable<br />
 
Appears in Battle Menu & Item Menu (Usable<br />
in Battle Menu)  
+
in Battle Menu) </td>
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td>
+
<td>0xFB</td>
0xFB
+
<td>Appears in Item Menu. Does not appear in<br />
</td>
+
Battle Menu (Usable in Item Menu) </td>
<td>
 
Appears in Item Menu. Does not appear in<br />
 
Battle Menu (Usable in Item Menu)  
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td>
+
<td>0xFA</td>
0xFA
+
<td>Appears in Battle Menu & Item Menu (Usable<br />
</td>
+
in Item Menu)</td>
<td>
 
Appears in Battle Menu & Item Menu (Usable<br />
 
in Item Menu)
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td>
+
<td>0xF9</td>
0xF9
+
<td>Appears in Item Menu. Does not appear in <br />
</td>
+
Battle Menu (Usable in Item Menu & Battle Menu)</td>
<td>
 
Appears in Item Menu. Does not appear in <br />
 
Battle Menu (Usable in Item Menu & Battle Menu)
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td>
+
<td>0xF8</td>
0xF8
+
<td>Appears in Battle Menu & Item Menu (Usable<br />
</td>
+
in Item Menu & Battle Menu)</td>
<td>
 
Appears in Battle Menu & Item Menu (Usable<br />
 
in Item Menu & Battle Menu)  
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td>
+
<td>0xF7</td>
0xF7
+
<td>Appears in Item Menu. Does not appear in<br />
</td>
 
<td>
 
Appears in Item Menu. Does not appear in<br />
 
 
Battle Menu (Usable in Battle Menu)  
 
Battle Menu (Usable in Battle Menu)  
 
</td>
 
</td>
Line 971: Line 552:
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td>
+
<td>0xF6</td>
0xF6
+
<td>Appears in Battle Menu & Item Menu (Usable<br />
</td>
+
in Battle Menu)</td>
<td>
 
Appears in Battle Menu & Item Menu (Usable<br />
 
in Battle Menu)  
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="text-align: center" style="margin-bottom: 53px;">
+
<td style="text-align: center" style="margin-bottom: 53px;">0x0B</td>
0x0B
+
<td>2 bytes</td>
</td>
+
<td colspan="2">Attack Target</td>
<td>
 
2 bytes
 
</td>
 
<td colspan="2">
 
Attack Target
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td colspan="2" rowspan="5" style="text-align: center" style="margin-bottom: 53px; background-color: rgb(205, 205, 255);">
+
<td colspan="2" rowspan="5" style="text-align: center" style="margin-bottom: 53px; background-color: rgb(205, 205, 255);">&nbsp;</td>
&nbsp;
+
<td style="width:100px;">0x01</td>
</td>
+
<td>One Target</td>
<td style="width:100px;">
 
0x01
 
</td>
 
<td>
 
One Target
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td>
+
<td>0x03</td>
0x03
+
<td style="background-color: rgb(255, 255, 204);">Unknown</td>
</td>
 
<td style="background-color: rgb(255, 255, 204);">
 
Unknown
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td>
+
<td>0x05</td>
0x05
+
<td>Multiple Targets</td>
</td>
 
<td>
 
Multiple Targets
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td>
+
<td>0x07</td>
0x07
+
<td style="background-color: rgb(255, 255, 204);">Unknown</td>
</td>
 
<td style="background-color: rgb(255, 255, 204);">
 
Unknown
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td>
+
<td>0x10</td>
0x10
+
<td>On Party Only</td>
</td>
 
<td>
 
On Party Only
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="text-align: center">
+
<td style="text-align: center">0x0D</td>
0x0D
+
<td>1 byte</td>
</td>
+
<td colspan="2">Item ID</td>
<td>
 
1 byte
 
</td>
 
<td colspan="2">
 
Item ID
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="text-align: center">
+
<td style="text-align: center">0x0E</td>
0x0E
+
<td>1 byte</td>
</td>
+
<td colspan="2">Restore Apply</td>
<td>
 
1 byte
 
</td>
 
<td colspan="2">
 
Restore Apply
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td colspan="2" rowspan="10" style="text-align: center" style="margin-bottom: 53px; background-color: rgb(205, 205, 255);">
+
<td colspan="2" rowspan="10" style="text-align: center" style="margin-bottom: 53px; background-color: rgb(205, 205, 255);">&nbsp;</td>
&nbsp;
+
<td style="width:100px;">0x00</td>
</td>
+
<td style="background-color: rgb(255, 255, 204);">Unknown</td>
<td style="width:100px;">
 
0x00
 
</td>
 
<td style="background-color: rgb(255, 255, 204);">
 
Unknown
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td>
+
<td>0x08</td>
0x08
+
<td>Apply also to MP</td>
</td>
 
<td>
 
Apply also to MP
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td>
+
<td>0x22</td>
0x22
+
<td style="background-color: rgb(255, 255, 204);">Unknown</td>
</td>
 
<td style="background-color: rgb(255, 255, 204);">
 
Unknown
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td>
+
<td>0x23</td>
0x23
+
<td style="background-color: rgb(255, 255, 204);">Unknown</td>
</td>
 
<td style="background-color: rgb(255, 255, 204);">
 
Unknown
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td>
+
<td>0x24</td>
0x24
+
<td>Damage / Restore by %</td>
</td>
 
<td>
 
Damage / Restore by %
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td>
+
<td>0x26</td>
0x26
+
<td>Damage / Restore by 20 X Amount Multiplier </td>
</td>
 
<td>
 
Damage / Restore by 20 X Amount Multiplier  
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td>
+
<td>0x37</td>
0x37
+
<td>Causes Damage</td>
</td>
 
<td>
 
Causes Damage
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td>
+
<td>0x47</td>
0x47
+
<td style="background-color: rgb(255, 255, 204);">Unknown</td>
</td>
 
<td style="background-color: rgb(255, 255, 204);">
 
Unknown
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td>
+
<td>0x50</td>
0x50
+
<td>Affects Stats</td>
</td>
 
<td>
 
Affects Stats
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td>
+
<td>0xFF</td>
0xFF
+
<td>None</td>
</td>
 
<td>
 
None
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="text-align: center">
+
<td style="text-align: center">0x0F</td>
0x0F
+
<td>1 byte</td>
</td>
+
<td colspan="2">Amount Multiplier</td>
<td>
 
1 byte
 
</td>
 
<td colspan="2">
 
Amount Multiplier
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="text-align: center">
+
<td style="text-align: center">0x10</td>
0x10
+
<td>1 byte</td>
</td>
+
<td colspan="2">Restore Type</td>
<td>
 
1 byte
 
</td>
 
<td colspan="2">
 
Restore Type
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td colspan="2" rowspan="4" style="text-align: center" style="margin-bottom: 53px; background-color: rgb(205, 205, 255);">
+
<td colspan="2" rowspan="4" style="text-align: center" style="margin-bottom: 53px; background-color: rgb(205, 205, 255);">&nbsp;</td>
&nbsp;
+
<td style="width:100px;">0x00</td>
</td>
+
<td>Restore HP</td>
<td style="width:100px;">
 
0x00
 
</td>
 
<td>
 
Restore HP
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="width:100px;">
+
<td style="width:100px;">0x01</td>
0x01
+
<td>Restore MP</td>
</td>
 
<td>
 
Restore MP
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="width:100px;">
+
<td style="width:100px;">0x02</td>
0x02
+
<td>Restore Ailment</td>
</td>
 
<td>
 
Restore Ailment
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="width:100px;">
+
<td style="width:100px;">0xFF</td>
0xFF
+
<td>None</td>
</td>
 
<td>
 
None
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 204);">
 
<tr style="background-color: rgb(255, 255, 204);">
<td style="text-align: center">
+
<td style="text-align: center">0x11</td>
0x11
+
<td>3 bytes</td>
</td>
+
<td colspan="2">Unknown</td>
<td>
 
3 bytes
 
</td>
 
<td colspan="2">
 
Unknown
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="text-align: center">
+
<td style="text-align: center">0x14</td>
0x14
+
<td>4 bytes</td>
</td>
+
<td colspan="2">Status effects</td>
<td>
 
4 bytes
 
</td>
 
<td colspan="2">
 
Status effects
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 255);">
 
<tr style="background-color: rgb(255, 255, 255);">
<td style="text-align: center">
+
<td style="text-align: center">0x18</td>
0x18
+
<td>2 bytes</td>
</td>
+
<td colspan="2">Element</td>
<td>
 
2 bytes
 
</td>
 
<td colspan="2">
 
Element
 
</td>
 
 
</tr>
 
</tr>
  
 
<tr style="background-color: rgb(255, 255, 204);">
 
<tr style="background-color: rgb(255, 255, 204);">
<td style="text-align: center">
+
<td style="text-align: center">0x1A</td>
0x1A
+
<td>2 bytes</td>
</td>
+
<td colspan="2">Unknown</td>
<td>
 
2 bytes
 
</td>
 
<td colspan="2">
 
Unknown
 
</td>
 
 
</tr>
 
</tr>
  
 
</table>
 
</table>

Revision as of 02:35, 9 March 2005

Important Files

File:Gears img 5.png

The KERNEL.BIN Archive

The file /INIT/KERNEL.BIN is in BIN-GZIP format. This format is explained later in this document. It consists of 27 gziped sections concatenated together with a 6 byte header for each. This file is the same both on the PC and PSX versions. This holds all the static data and menu text for the game, with a look up table at the beginning of the section. Sections 10-27 are FF Text files.

The KERNEL.BIN file consists of the following sections.

File Data Offset
1 Command data 0x0006
2 Attack data 0x0086
3 Unknown (Savemap?) 0x063A
4 Character starting stats 0x0F7F
5 Item data 0x111B
6 Weapon data 0x137A
7 Armor data 0x1A30
8 Accessory data 0x1B73
9 Materia data 0x1C11
10 Command Descriptions 0x1F32
11 Magic Descriptions 0x2199
12 Item Descriptions 0x28D4
13 Weapon Descriptions 0x2EE2
14 Armor Descriptions 0x307B
15 Accessory Descriptions 0x315F
16 Materia Descriptions 0x3384
17 Key Item Descriptions 0x3838
18 Command Names 0x3BE2
19 Magic Names 0x3CCA
20 Item Names 0x4293
21 Weapon Names 0x4651
22 Armor Names 0x4B02
23 Accessory Names 0x4C4B
24 Materia Names 0x4D90
25 Key Item Names 0x5040
26 Battle and Battle-Screen Text 0x5217
27 Summon Attack Names 0x5692

KERNEL.BIN Section formats

The first 9 sections of data (i.e. The non-text related items) have a typical BIN file format. The text sections (10-27) do not have the typical 6 byte header. The text sections have a header of pointers to the text block. The text is in FF text format.

Section 1: Command data format

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


Offset Length Description
       
       
       
       
       
       
       
       
       
       
       


Section 2: Attack data format

This contains the data for the different attacks. Each record is 28 bytes long.


Offset Length Description
0x00 4 bytes Unknown
0x04 1 bytes Casting cost
0x05 5 bytes Unknown
0x0A 1 bytes Attack type
0x0B 2 bytes Attack attribute
  0x0000 Escape/Exit-Type
0x0001 Ribbon-Like
0x0003 Enemy Skill (?)
0x0005 Enemy Skill (?)
0x0007 Enemy Skill (?)
0x000D Restorative/Protective
0x000F Status-giving/Elemental
0x0011 Shield
0x0013 Limit Break
0x0015 Cait Sith Limit Break
0x0017 Summon
0x00C7 Roulette
0x0097 Multiple Strike Limit Breaks
0xFF01 Phoenix Down
0xFF03 X-needles attack
0xFF17 Final Limit Break
0x0D 1 byte ID Number
0x0E 1 byte Restore Apply
0x0F 1 byte Strength
0x10 1 byte Restore type
  0x00 Restore HP
0x01 Restore MP
0x02 Restore Ailment
0xFF None
0x11 2 bytes Unknown
0x13 1 byte Times attacking
0x14 4 bytes Status
0x18 2 bytes Element
0x20 2 bytes Unknown

Section 3: Savemap

This is all the initial values and structure for most of the Savemap, excluding the header data and the tail of the last bank (0x0054 to 0x0FE7). This is copied into RAM on initialization. This format is explained in the "Menu" Section.

Section 4: Initialization data

This contains the starting stats for the characters and related game states. On "New Game", this data is copied directly into the save map (from offset 0x0054 to 0x0BAF) which is explained in the "Menu" section. This data has the same format as the data explained in that section.

Section 5: Item data format

This contains the item data. Each item record is 27 bytes long.


Offset Length Description
0x00 8 bytes Unknown Always 0xFFFFFFFF
0x08 2 bytes Unknown
0x0A 1 byte Restriction Mask
  0xFF

Appears in Item Menu. Does not appear in

Battle Menu (Not usable at all)
0xFE Appears in Battle Menu & Item Menu (Not
usable at all)
0xFD Appears in Item Menu. Does not appear in
Battle Menu (Usable in Battle Menu)
0xFC

Appears in Battle Menu & Item Menu (Usable

in Battle Menu)
0xFB Appears in Item Menu. Does not appear in
Battle Menu (Usable in Item Menu)
0xFA Appears in Battle Menu & Item Menu (Usable
in Item Menu)
0xF9 Appears in Item Menu. Does not appear in
Battle Menu (Usable in Item Menu & Battle Menu)
0xF8 Appears in Battle Menu & Item Menu (Usable
in Item Menu & Battle Menu)
0xF7 Appears in Item Menu. Does not appear in

Battle Menu (Usable in Battle Menu)

0xF6 Appears in Battle Menu & Item Menu (Usable
in Battle Menu)
0x0B 2 bytes Attack Target
  0x01 One Target
0x03 Unknown
0x05 Multiple Targets
0x07 Unknown
0x10 On Party Only
0x0D 1 byte Item ID
0x0E 1 byte Restore Apply
  0x00 Unknown
0x08 Apply also to MP
0x22 Unknown
0x23 Unknown
0x24 Damage / Restore by %
0x26 Damage / Restore by 20 X Amount Multiplier
0x37 Causes Damage
0x47 Unknown
0x50 Affects Stats
0xFF None
0x0F 1 byte Amount Multiplier
0x10 1 byte Restore Type
  0x00 Restore HP
0x01 Restore MP
0x02 Restore Ailment
0xFF None
0x11 3 bytes Unknown
0x14 4 bytes Status effects
0x18 2 bytes Element
0x1A 2 bytes Unknown