FFVA ROM map
Tables
Monsters
Address | Entry Size | Comments |
---|---|---|
0x14D228 | 36 bytes | Stores most monster data, similar to the SNES ROM. The order is different, however. |
0x147FBC | 8 bytes | Item drop/steals table. 2 bytes per item, in the order rare steal/common steal/rare drop/common drop. |
0x147D14 | 1 byte | Release spell association table. |
0x13A374 | X byte | Event encounters (192*2) |
0x13A5B4 | X byte | Monster zones in World 1 (4*2 * 8*8) |
0x13A7B4 | X byte | Monster zones in World 2 (4*2 * 8*8) |
0x13A9B4 | X byte | Monster zones in World 3 (4*2 * 8*8) |
0x13ABB4 | X byte | Monster zones in dungeons (512*2 indices to Monster groups) |
0x140FB8 | X byte | Monster groups (256 * 4*2bytes indices to Monster Encounter) |
0x14FAA8 | X byte | Monster Encounter (512*28) |
Jobs
Address | Entry Size | Comments |
---|---|---|
0x155FAC | 4 bytes | Stats given by !Command skills. Byte order is Strength, Agility, Vitality and Magic. |
0x155E10 | 4 bytes | Stats given by Equip (i.e. non-!Command) skills. Same byte order. The first entry corresponds to ID 0x80 (Equip Shields). |
0x156E04 | 4 bytes | Stats given by a job. |
0x155484 | 4 bytes | Skill progression table. Each entry is a pointer to a list. The list contains entries of the form ,, 2 bytes for each value. |
0x14B1FC | 1 byte | Skill progression size. Tells the game how many skills a job can learn. This value has to match the length of the skill progression; longer and the job will start learning skills from the next job, shorter and the job will stop learning skills early. |
0x15616C | 4 bytes | Base skills for jobs. This is what is in each slot in the skill assignment page. This doesn't control which slots can be filled (e.g. Freelancers/Mimes), even if slot 3 has a skill it can be overwritten. |
0x156138 | 2 bytes | Innate abilities a job knows. It's a bitflag so 0x3 means both Learn (bitflag 0x1) and Magic Shell (bitflag 0x2) are innate, e.g. |
Items
Address | Entry Size | Comments |
---|---|---|
0x155810 | 12 bytes | Weapon stats. Only items with ID < 0x80 (128) are considered weapons. Stats are similar to the SNES ROM, but in a different order. The new byte order is 8 9 A B 0 1 4 2 3 5 6 7. |
0x1462D0 | 12 bytes | Stats of equippable non-weapons. ID must be between 0x80 (128) and 0xDF (223). Order is possibly the same as weapons? |
0x148FBC | 8 bytes | Stats for consumable items. ID must be above 0xE0 (224). Note the difference in entry size. |
Treasure Chest
Address | Entry Size | Comments |
---|---|---|
0x142000 | 2696 bytes | Chest data. The first two bytes indicate where on the map the chest is located (the map itself is determined by a separate table), the third byte determines the type of reward you get from the chest as well as whether the chest is trapped, and the fifth byte determines the actual reward you get. For gold, the value is multiplied by a second value which is determined by the type byte, for items/spell the value is the ID. (8 bytes * 337 treasures) |
0x141BB8 | 5392 bytes | Chest map data. Determines which chest data appears in which map. Like text, the data indicates the starting point in the chest data, and the data for the next room also determines the stopping point. The starting point for the next room must be further than the starting point for the current room for any chest to appear (e.g. if room 1 starts at 2 and room 2 also starts at 2, room 1 has no chest data). (2 byte * 8 + 142000) |
0x13C912 | 12 bytes | Gold multipliers for chest gold (2 byte * 6). The default values are 1, 10, 100, 1000, 10000 & 34464 (Stored as $86A0 instead of $186A0 due to size) |
0x13A4F4 | 64 bytes | Monster-in-a-box encounters (2 byte * 2 encounters * 16 formations) |
Miscellaneous
Address | Entry Size | Comments |
---|---|---|
0x1572FC | 20 bytes | Shop data. The first 2 bytes indicates the type of shop (which determines whether the shop sells spells or items), and the next set of 2 bytes are the items it sells. The last 2 bytes may be required to always be 0. |
0x141AB8 | 1 byte | Table used by one of the RNGs in the game. Consists of the values between 0-255 in a random order. |
0x1497DC | 4 bytes | Gaia spell association table. Each entry are the 4 spells !Gaia can cast, in order of level requirement (least to most.) |
0x36DD54 | 4 bytes | Points to relative offsets of text entries. The offsets are relative to 0x36DD54. Each entry uses the start of the next entry as the end point (so you can't insert text larger than the original without having to repoint the table.) |
0x145A28 | 4 bytes | Table for level up data. The first 4 bytes are the amount of experience required, and the next pair of 2 bytes are the base HP and base MP given at that level (before job modifiers.) |
0x1561D4 | 12 bytes | Table that determines the money for selling items. (Buying is generally 2x the sale value). Only a small portion is used for that, the rest is currently undocumented. |
0x241384 | 4 bytes | Points to relative offsets of AI blocks, similar to how text is handled. 0x241EDC is the starting point. Not clear if the next entry is also an ending point (like for text.) |
0x1305f8 | 12 bytes | Terrain background table (4 byte of Graphics + 4 byte of TSA + 4 byte of Palette) |