FFVA ROM map

From FF5 Hacking Wiki
Jump to navigation Jump to search

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)