Difference between revisions of "FF7/Kernel/Kernel.bin"
my_wiki>Halkun |
my_wiki>Synergy Blades (→KERNEL.BIN Section formats) |
||
Line 264: | Line 264: | ||
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. | 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. | ||
+ | |||
+ | |||
+ | <table cellspacing="1" style="margin-bottom: 53px; background: rgb(0, 0, 0);"> | ||
+ | <tr> | ||
+ | <th style="text-align: center; vertical-align: middle; width: 50px; height: 26px; background-color: rgb(204, 204, 204);"> | ||
+ | Offset</th> | ||
+ | <th style="vertical-align: middle; width: 50px; height: 26px; background-color: rgb(204, 204, 204);"> | ||
+ | Length</th> | ||
+ | <th colspan="2" style="vertical-align: middle; width: 250px; height: 26px; background-color: rgb(204, 204, 204);"> | ||
+ | Description</th> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background: rgb(255, 255, 255);"> | ||
+ | <td style="text-align: center" style="margin-bottom: 53px;"> | ||
+ | | ||
+ | </td> | ||
+ | <td> | ||
+ | | ||
+ | </td> | ||
+ | <td style="width: 125px"> | ||
+ | | ||
+ | </td> | ||
+ | <td style="width: 125px"> | ||
+ | | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background: rgb(255, 255, 255);"> | ||
+ | <td style="text-align: center" style="margin-bottom: 53px;"> | ||
+ | | ||
+ | </td> | ||
+ | <td> | ||
+ | | ||
+ | </td> | ||
+ | <td> | ||
+ | | ||
+ | </td> | ||
+ | <td> | ||
+ | | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background: rgb(255, 255, 255);"> | ||
+ | <td style="text-align: center" style="margin-bottom: 53px;"> | ||
+ | | ||
+ | </td> | ||
+ | <td> | ||
+ | | ||
+ | </td> | ||
+ | <td> | ||
+ | | ||
+ | </td> | ||
+ | <td> | ||
+ | | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background: rgb(255, 255, 255);"> | ||
+ | <td style="text-align: center" style="margin-bottom: 53px;"> | ||
+ | | ||
+ | </td> | ||
+ | <td> | ||
+ | | ||
+ | </td> | ||
+ | <td> | ||
+ | | ||
+ | </td> | ||
+ | <td> | ||
+ | | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background: rgb(255, 255, 255);"> | ||
+ | <td style="text-align: center" style="margin-bottom: 53px;"> | ||
+ | | ||
+ | </td> | ||
+ | <td> | ||
+ | | ||
+ | </td> | ||
+ | <td> | ||
+ | | ||
+ | </td> | ||
+ | <td> | ||
+ | | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background: rgb(255, 255, 255);"> | ||
+ | <td style="text-align: center" style="margin-bottom: 53px;"> | ||
+ | | ||
+ | </td> | ||
+ | <td> | ||
+ | | ||
+ | </td> | ||
+ | <td> | ||
+ | | ||
+ | </td> | ||
+ | <td> | ||
+ | | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background: rgb(255, 255, 255);"> | ||
+ | <td style="text-align: center" style="margin-bottom: 53px;"> | ||
+ | | ||
+ | </td> | ||
+ | <td> | ||
+ | | ||
+ | </td> | ||
+ | <td> | ||
+ | | ||
+ | </td> | ||
+ | <td> | ||
+ | | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background: rgb(255, 255, 255);"> | ||
+ | <td style="text-align: center" style="margin-bottom: 53px;"> | ||
+ | | ||
+ | </td> | ||
+ | <td> | ||
+ | | ||
+ | </td> | ||
+ | <td> | ||
+ | | ||
+ | </td> | ||
+ | <td> | ||
+ | | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background: rgb(255, 255, 255);"> | ||
+ | <td style="text-align: center" style="margin-bottom: 53px;"> | ||
+ | | ||
+ | </td> | ||
+ | <td> | ||
+ | | ||
+ | </td> | ||
+ | <td> | ||
+ | | ||
+ | </td> | ||
+ | <td> | ||
+ | | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background: rgb(255, 255, 255);"> | ||
+ | <td style="text-align: center" style="margin-bottom: 53px;"> | ||
+ | | ||
+ | </td> | ||
+ | <td> | ||
+ | | ||
+ | </td> | ||
+ | <td> | ||
+ | | ||
+ | </td> | ||
+ | <td> | ||
+ | | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background: rgb(255, 255, 255);"> | ||
+ | <td style="text-align: center" style="margin-bottom: 53px;"> | ||
+ | | ||
+ | </td> | ||
+ | <td> | ||
+ | | ||
+ | </td> | ||
+ | <td> | ||
+ | | ||
+ | </td> | ||
+ | <td> | ||
+ | | ||
+ | </td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | === Section 2: Attack data format === | ||
+ | |||
+ | This contains the data for the different attacks. Each record is 28 bytes long. | ||
+ | |||
+ | |||
+ | <table cellpadding="3" cellspacing="1" style="margin-bottom: 53px; background: rgb(0, 0, 0);"> | ||
+ | <tr> | ||
+ | <th style="text-align: center; vertical-align: middle; width: 50px; height: 26px; background-color: rgb(204, 204, 204);"> | ||
+ | Offset</th> | ||
+ | <th style="vertical-align: middle; width: 50px; height: 26px; background-color: rgb(204, 204, 204);"> | ||
+ | Length</th> | ||
+ | <th colspan="2" style="vertical-align: middle; width: 250px; height: 26px; background-color: rgb(204, 204, 204);"> | ||
+ | Description</th> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 204);"> | ||
+ | <td style="text-align: center" style="margin-bottom: 53px;"> | ||
+ | 0x00 | ||
+ | </td> | ||
+ | <td> | ||
+ | 4 bytes | ||
+ | </td> | ||
+ | <td colspan="2" style="width: 125px"> | ||
+ | Unknown | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="text-align: center" style="margin-bottom: 53px;"> | ||
+ | 0x04 | ||
+ | </td> | ||
+ | <td> | ||
+ | 1 bytes | ||
+ | </td> | ||
+ | <td colspan="2" style="width: 125px"> | ||
+ | Casting cost | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 204);"> | ||
+ | <td style="text-align: center" style="margin-bottom: 53px;"> | ||
+ | 0x05 | ||
+ | </td> | ||
+ | <td> | ||
+ | 5 bytes | ||
+ | </td> | ||
+ | <td colspan="2" style="width: 125px"> | ||
+ | Unknown | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="text-align: center" style="margin-bottom: 53px;"> | ||
+ | 0x0A | ||
+ | </td> | ||
+ | <td> | ||
+ | 1 bytes | ||
+ | </td> | ||
+ | <td colspan="2" style="width: 125px"> | ||
+ | Attack type | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="text-align: center" style="margin-bottom: 53px;"> | ||
+ | 0x0B | ||
+ | </td> | ||
+ | <td> | ||
+ | 2 bytes | ||
+ | </td> | ||
+ | <td colspan="2" style="width: 125px"> | ||
+ | Attack attribute | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <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> | ||
+ | <td style="width: 110px"> | ||
+ | 0x0000 | ||
+ | </td> | ||
+ | <td style="width: 140px"> | ||
+ | Escape/Exit-Type | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="width: 110px"> | ||
+ | 0x0001 | ||
+ | </td> | ||
+ | <td style="width: 140px"> | ||
+ | Ribbon-Like | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="width: 110px"> | ||
+ | 0x0003 | ||
+ | </td> | ||
+ | <td style="width: 140px; background-color: rgb(255, 255, 204);"> | ||
+ | Enemy Skill (?) | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="width: 110px"> | ||
+ | 0x0005 | ||
+ | </td> | ||
+ | <td style="width: 140px; background-color: rgb(255, 255, 204);"> | ||
+ | Enemy Skill (?) | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="width: 110px"> | ||
+ | 0x0007 | ||
+ | </td> | ||
+ | <td style="width: 140px; background-color: rgb(255, 255, 204);"> | ||
+ | Enemy Skill (?) | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="width: 110px"> | ||
+ | 0x000D | ||
+ | </td> | ||
+ | <td style="width: 140px"> | ||
+ | Restorative/Protective | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="width: 110px"> | ||
+ | 0x000F | ||
+ | </td> | ||
+ | <td style="width: 140px"> | ||
+ | Status-giving/Elemental | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="width: 110px"> | ||
+ | 0x0011 | ||
+ | </td> | ||
+ | <td style="width: 140px"> | ||
+ | Shield | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="width: 110px"> | ||
+ | 0x0013 | ||
+ | </td> | ||
+ | <td style="width: 140px"> | ||
+ | Limit Break | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="width: 110px"> | ||
+ | 0x0015 | ||
+ | </td> | ||
+ | <td style="width: 140px"> | ||
+ | Cait Sith Limit Break | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="width: 110px"> | ||
+ | 0x0017 | ||
+ | </td> | ||
+ | <td style="width: 140px"> | ||
+ | Summon | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="width: 110px"> | ||
+ | 0x00C7 | ||
+ | </td> | ||
+ | <td style="width: 140px"> | ||
+ | Roulette | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="width: 110px"> | ||
+ | 0x0097 | ||
+ | </td> | ||
+ | <td style="width: 140px"> | ||
+ | Multiple Strike Limit Breaks | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="width: 110px"> | ||
+ | 0xFF01 | ||
+ | </td> | ||
+ | <td style="width: 140px"> | ||
+ | Phoenix Down | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="width: 110px"> | ||
+ | 0xFF03 | ||
+ | </td> | ||
+ | <td style="width: 140px"> | ||
+ | X-needles attack | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="width: 110px"> | ||
+ | 0xFF17 | ||
+ | </td> | ||
+ | <td style="width: 140px"> | ||
+ | Final Limit Break | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="text-align: center" style="margin-bottom: 53px;"> | ||
+ | 0x0D | ||
+ | </td> | ||
+ | <td> | ||
+ | 1 byte | ||
+ | </td> | ||
+ | <td colspan="2" style="width: 125px"> | ||
+ | ID Number | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="text-align: center" style="margin-bottom: 53px;"> | ||
+ | 0x0E | ||
+ | </td> | ||
+ | <td> | ||
+ | 1 byte | ||
+ | </td> | ||
+ | <td colspan="2" style="width: 125px"> | ||
+ | Restore Apply | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="text-align: center" style="margin-bottom: 53px;"> | ||
+ | 0x0F | ||
+ | </td> | ||
+ | <td> | ||
+ | 1 byte | ||
+ | </td> | ||
+ | <td colspan="2" style="width: 125px"> | ||
+ | Strength | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="text-align: center" style="margin-bottom: 53px;"> | ||
+ | 0x10 | ||
+ | </td> | ||
+ | <td> | ||
+ | 1 byte | ||
+ | </td> | ||
+ | <td colspan="2" style="width: 125px"> | ||
+ | Restore type | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <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> | ||
+ | <td style="width: 110px"> | ||
+ | 0x00 | ||
+ | </td> | ||
+ | <td style="width: 140px"> | ||
+ | Restore HP | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="width: 110px"> | ||
+ | 0x01 | ||
+ | </td> | ||
+ | <td style="width: 140px"> | ||
+ | Restore MP | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="width: 110px"> | ||
+ | 0x02 | ||
+ | </td> | ||
+ | <td style="width: 140px"> | ||
+ | Restore Ailment | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="width: 110px"> | ||
+ | 0xFF | ||
+ | </td> | ||
+ | <td style="width: 140px"> | ||
+ | None | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 204);"> | ||
+ | <td style="text-align: center" style="margin-bottom: 53px;"> | ||
+ | 0x11 | ||
+ | </td> | ||
+ | <td> | ||
+ | 2 bytes | ||
+ | </td> | ||
+ | <td colspan="2" style="width: 125px"> | ||
+ | Unknown | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="text-align: center" style="margin-bottom: 53px;"> | ||
+ | 0x13 | ||
+ | </td> | ||
+ | <td> | ||
+ | 1 byte | ||
+ | </td> | ||
+ | <td colspan="2" style="width: 125px"> | ||
+ | Times attacking | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="text-align: center" style="margin-bottom: 53px;"> | ||
+ | 0x14 | ||
+ | </td> | ||
+ | <td> | ||
+ | 4 bytes | ||
+ | </td> | ||
+ | <td colspan="2" style="width: 125px"> | ||
+ | Status | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="text-align: center" style="margin-bottom: 53px;"> | ||
+ | 0x18 | ||
+ | </td> | ||
+ | <td> | ||
+ | 2 bytes | ||
+ | </td> | ||
+ | <td colspan="2" style="width: 125px"> | ||
+ | Element | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 204);"> | ||
+ | <td style="text-align: center" style="margin-bottom: 53px;"> | ||
+ | 0x20 | ||
+ | </td> | ||
+ | <td> | ||
+ | 2 bytes | ||
+ | </td> | ||
+ | <td colspan="2" style="width: 125px"> | ||
+ | Unknown | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | </table> | ||
+ | === 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. | ||
+ | |||
+ | |||
+ | <table cellpadding="3" cellspacing="1" style="margin-bottom: 53px; background: rgb(0, 0, 0);"> | ||
+ | <tr> | ||
+ | <th style="text-align: center; vertical-align: middle; width: 50px; height: 26px; background-color: rgb(204, 204, 204);"> | ||
+ | Offset</th> | ||
+ | <th style="vertical-align: middle; width: 50px; height: 26px; background-color: rgb(204, 204, 204);"> | ||
+ | Length</th> | ||
+ | <th colspan="2" style="vertical-align: middle; width: 350px; height: 26px; background-color: rgb(204, 204, 204);"> | ||
+ | Description</th> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="text-align: center" style="margin-bottom: 53px;"> | ||
+ | 0x00 | ||
+ | </td> | ||
+ | <td> | ||
+ | 8 bytes | ||
+ | </td> | ||
+ | <td style="width: 100px"> | ||
+ | Unknown | ||
+ | </td> | ||
+ | <td> | ||
+ | Always 0xFFFFFFFF | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="text-align: center" style="margin-bottom: 53px;"> | ||
+ | 0x08 | ||
+ | </td> | ||
+ | <td> | ||
+ | 2 bytes | ||
+ | </td> | ||
+ | <td colspan="2" style="width: 275px; background-color: rgb(255, 255, 205);"> | ||
+ | Unknown | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="text-align: center" style="margin-bottom: 53px;"> | ||
+ | 0x0A | ||
+ | </td> | ||
+ | <td> | ||
+ | 1 byte | ||
+ | </td> | ||
+ | <td colspan="2"> | ||
+ | Restriction Mask | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <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> | ||
+ | <td style="width:100px;"> | ||
+ | 0xFF | ||
+ | </td> | ||
+ | <td> | ||
+ | Appears in Item Menu. Does not appear in<br /> | ||
+ | Battle Menu (Not usable at all) | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td> | ||
+ | 0xFE | ||
+ | </td> | ||
+ | <td> | ||
+ | Appears in Battle Menu & Item Menu (Not<br /> | ||
+ | usable at all) | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td> | ||
+ | 0xFD | ||
+ | </td> | ||
+ | <td> | ||
+ | Appears in Item Menu. Does not appear in<br /> | ||
+ | Battle Menu (Usable in Battle Menu) | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td> | ||
+ | 0xFC | ||
+ | </td> | ||
+ | <td> | ||
+ | Appears in Battle Menu & Item Menu (Usable<br /> | ||
+ | in Battle Menu) | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td> | ||
+ | 0xFB | ||
+ | </td> | ||
+ | <td> | ||
+ | Appears in Item Menu. Does not appear in<br /> | ||
+ | Battle Menu (Usable in Item Menu) | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td> | ||
+ | 0xFA | ||
+ | </td> | ||
+ | <td> | ||
+ | Appears in Battle Menu & Item Menu (Usable<br /> | ||
+ | in Item Menu) | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td> | ||
+ | 0xF9 | ||
+ | </td> | ||
+ | <td> | ||
+ | Appears in Item Menu. Does not appear in <br /> | ||
+ | Battle Menu (Usable in Item Menu & Battle Menu) | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td> | ||
+ | 0xF8 | ||
+ | </td> | ||
+ | <td> | ||
+ | Appears in Battle Menu & Item Menu (Usable<br /> | ||
+ | in Item Menu & Battle Menu) | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td> | ||
+ | 0xF7 | ||
+ | </td> | ||
+ | <td> | ||
+ | Appears in Item Menu. Does not appear in<br /> | ||
+ | Battle Menu (Usable in Battle Menu) | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td> | ||
+ | 0xF6 | ||
+ | </td> | ||
+ | <td> | ||
+ | Appears in Battle Menu & Item Menu (Usable<br /> | ||
+ | in Battle Menu) | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="text-align: center" style="margin-bottom: 53px;"> | ||
+ | 0x0B | ||
+ | </td> | ||
+ | <td> | ||
+ | 2 bytes | ||
+ | </td> | ||
+ | <td colspan="2"> | ||
+ | Attack Target | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <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> | ||
+ | <td style="width:100px;"> | ||
+ | 0x01 | ||
+ | </td> | ||
+ | <td> | ||
+ | One Target | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td> | ||
+ | 0x03 | ||
+ | </td> | ||
+ | <td style="background-color: rgb(255, 255, 204);"> | ||
+ | Unknown | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td> | ||
+ | 0x05 | ||
+ | </td> | ||
+ | <td> | ||
+ | Multiple Targets | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td> | ||
+ | 0x07 | ||
+ | </td> | ||
+ | <td style="background-color: rgb(255, 255, 204);"> | ||
+ | Unknown | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td> | ||
+ | 0x10 | ||
+ | </td> | ||
+ | <td> | ||
+ | On Party Only | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="text-align: center"> | ||
+ | 0x0D | ||
+ | </td> | ||
+ | <td> | ||
+ | 1 byte | ||
+ | </td> | ||
+ | <td colspan="2"> | ||
+ | Item ID | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="text-align: center"> | ||
+ | 0x0E | ||
+ | </td> | ||
+ | <td> | ||
+ | 1 byte | ||
+ | </td> | ||
+ | <td colspan="2"> | ||
+ | Restore Apply | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <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> | ||
+ | <td style="width:100px;"> | ||
+ | 0x00 | ||
+ | </td> | ||
+ | <td style="background-color: rgb(255, 255, 204);"> | ||
+ | Unknown | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td> | ||
+ | 0x08 | ||
+ | </td> | ||
+ | <td> | ||
+ | Apply also to MP | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td> | ||
+ | 0x22 | ||
+ | </td> | ||
+ | <td style="background-color: rgb(255, 255, 204);"> | ||
+ | Unknown | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td> | ||
+ | 0x23 | ||
+ | </td> | ||
+ | <td style="background-color: rgb(255, 255, 204);"> | ||
+ | Unknown | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td> | ||
+ | 0x24 | ||
+ | </td> | ||
+ | <td> | ||
+ | Damage / Restore by % | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td> | ||
+ | 0x26 | ||
+ | </td> | ||
+ | <td> | ||
+ | Damage / Restore by 20 X Amount Multiplier | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td> | ||
+ | 0x37 | ||
+ | </td> | ||
+ | <td> | ||
+ | Causes Damage | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td> | ||
+ | 0x47 | ||
+ | </td> | ||
+ | <td style="background-color: rgb(255, 255, 204);"> | ||
+ | Unknown | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td> | ||
+ | 0x50 | ||
+ | </td> | ||
+ | <td> | ||
+ | Affects Stats | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td> | ||
+ | 0xFF | ||
+ | </td> | ||
+ | <td> | ||
+ | None | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="text-align: center"> | ||
+ | 0x0F | ||
+ | </td> | ||
+ | <td> | ||
+ | 1 byte | ||
+ | </td> | ||
+ | <td colspan="2"> | ||
+ | Amount Multiplier | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="text-align: center"> | ||
+ | 0x10 | ||
+ | </td> | ||
+ | <td> | ||
+ | 1 byte | ||
+ | </td> | ||
+ | <td colspan="2"> | ||
+ | Restore Type | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <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> | ||
+ | <td style="width:100px;"> | ||
+ | 0x00 | ||
+ | </td> | ||
+ | <td> | ||
+ | Restore HP | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="width:100px;"> | ||
+ | 0x01 | ||
+ | </td> | ||
+ | <td> | ||
+ | Restore MP | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="width:100px;"> | ||
+ | 0x02 | ||
+ | </td> | ||
+ | <td> | ||
+ | Restore Ailment | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="width:100px;"> | ||
+ | 0xFF | ||
+ | </td> | ||
+ | <td> | ||
+ | None | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 204);"> | ||
+ | <td style="text-align: center"> | ||
+ | 0x11 | ||
+ | </td> | ||
+ | <td> | ||
+ | 3 bytes | ||
+ | </td> | ||
+ | <td colspan="2"> | ||
+ | Unknown | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="text-align: center"> | ||
+ | 0x14 | ||
+ | </td> | ||
+ | <td> | ||
+ | 4 bytes | ||
+ | </td> | ||
+ | <td colspan="2"> | ||
+ | Status effects | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 255);"> | ||
+ | <td style="text-align: center"> | ||
+ | 0x18 | ||
+ | </td> | ||
+ | <td> | ||
+ | 2 bytes | ||
+ | </td> | ||
+ | <td colspan="2"> | ||
+ | Element | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | <tr style="background-color: rgb(255, 255, 204);"> | ||
+ | <td style="text-align: center"> | ||
+ | 0x1A | ||
+ | </td> | ||
+ | <td> | ||
+ | 2 bytes | ||
+ | </td> | ||
+ | <td colspan="2"> | ||
+ | Unknown | ||
+ | </td> | ||
+ | </tr> | ||
+ | |||
+ | </table> |
Revision as of 01:40, 9 March 2005
Contents
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 | 0x2119 |
12 | Item Descriptions | 0x28D4 |
13 | Weapon Descriptions | 0x2EE2 |
14 | Armor Descriptions | 0x307B |
15 | Accessory Descriptions | 0x315F |
16 | Materia Descriptions | 0x3384 |
17 | Key Item Description | 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 |
|
0xFE |
Appears in Battle Menu & Item Menu (Not |
||
0xFD |
Appears in Item Menu. Does not appear in |
||
0xFC |
Appears in Battle Menu & Item Menu (Usable |
||
0xFB |
Appears in Item Menu. Does not appear in |
||
0xFA |
Appears in Battle Menu & Item Menu (Usable |
||
0xF9 |
Appears in Item Menu. Does not appear in |
||
0xF8 |
Appears in Battle Menu & Item Menu (Usable |
||
0xF7 |
Appears in Item Menu. Does not appear in |
||
0xF6 |
Appears in Battle Menu & Item Menu (Usable |
||
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 |