FFV RAM map

From FF5 Hacking Wiki
Revision as of 18:37, 2 April 2019 by Samurai goroh (talk | contribs) (7E/0840 to 7E/0949 - Jobs (World))
Jump to navigation Jump to search

This document is a WIP, you can expand it by contributing.


Note: Super Nintendo RAM address can be easily converted to Play Station RAM addresses as the game is a exact copy, the addresses will just be shifted. Instead of starting at $7E0000 (or just $0000) you start at address $02E000, in other words:

   PS address = SNES address - $7B2000


Contents

7E/0000 to 7E/XXXX - Battle Engine Data

7E/0200 to 7E/0420 - Sprite DMA Buffer (NMI Handler)

7E/0500 to 7E/063F - Player stats (World)

Each player has the same structure, so if you are looking for the addresses of the other players, just use the table for the 1st player and add $50 each time ($50, $A0 and $F0) to the address.

7E/0500 to 7E/054F - 1st Player stats (World)

Address Size Type Description Comments
7E0500 1 Custom 1st Player - Character
7E0501 1 List 1st Player - Job
7E0502 1 Integer 1st Player - Level
7E0503 3 Integer 1st Player - Experience
7E0506 2 Integer 1st Player - Current Hp
7E0508 2 Integer 1st Player - Max Hp
7E050A 2 Integer 1st Player - Current Mp
7E050C 2 Integer 1st Player - Max Mp
7E050E 1 List 1st Player - Head equipment modifier (Item IDs)
7E050F 1 List 1st Player - Body equipment modifier (Item IDs)
7E0510 1 List 1st Player - Accessory equipment modifier (Item IDs)
7E0511 1 List 1st Player - Right Hand Shield equipment modifier (Item IDs)
7E0512 1 List 1st Player - Left Hand Shield equipment modifier (Item IDs)
7E0513 1 List 1st Player - Right Hand Weapon equipment modifier (Item IDs)
7E0514 1 List 1st Player - Left Hand Weapon equipment modifier (Item IDs)
7E0515 1 List 1st Player - Monster Caught Only uses 1 byte (the first 256 values)
7E0516 1 List 1st Player - Battle Command 1 (Up) modifier
7E0517 1 List 1st Player - Battle Command 2 (Left) modifier
7E0518 1 List 1st Player - Battle Command 3 (Right) modifier
7E0519 1 List 1st Player - Battle Command 4 (Down) modifier
7E051A 1 Bitwise 1st Player - Status (World - Curable)
7E051B 1 Bitwise 1st Player - Status (World - Temporary)
7E051C 1 Bitwise 1st Player - Status (World - Dispellable)
7E051D 1 Bitwise 1st Player - Status (World - Permanent)
7E051E 1 Bitwise 1st Player - Action Flags (n/u)
7E051F 1 Bitwise 1st Player - Damage Modifier (n/u) Not Used
7E0520 2 Bitwise 1st Player - Innate Abilities
7E0522 1 Bitwise 1st Player - Magic Element Up
7E0523 1 Integer 1st Player - Equip Weight
7E0524 1 Integer 1st Player - Base Strength
7E0525 1 Integer 1st Player - Base Agility
7E0526 1 Integer 1st Player - Base Stamina
7E0527 1 Integer 1st Player - Base Magic Power
7E0528 1 Integer 1st Player - Current Strength with Equipment calculated
7E0529 1 Integer 1st Player - Current Agility with Equipment calculated
7E052A 1 Integer 1st Player - Current Stamina with Equipment calculated
7E052B 1 Integer 1st Player - Current Magic Power with Equipment calculated
7E052C 1 Integer 1st Player - Evade%
7E052D 1 Integer 1st Player - Defense
7E052E 1 Integer 1st Player - Magic Evade%
7E052F 1 Integer 1st Player - Magic Defense
7E0530 1 List 1st Player - Elemental Absorb
7E0531 1 List 1st Player - Elemental ??? (n/u?)
7E0532 1 List 1st Player - Elemental Immunity
7E0533 1 List 1st Player - Elemental Half
7E0534 1 List 1st Player - Elemental Weakness
7E0535 1 Bitwise 1st Player - Resistance Status (Curable) Not Used
7E0536 1 Bitwise 1st Player - Resistance Status (Temporary) Not Used
7E0537 1 Bitwise 1st Player - Resistance Status (Dispellable) Not Used
7E0538 1 Bitwise 1st Player - Weapon Specialty
7E0539 1 Bitwise 1st Player - Equipment Specialty
7E053A 1 Integer 1st Player - Job Level
7E053B 2 Integer 1st Player - ABP
7E053D 1st Player - Magic used, List #1 (Sword/White) Not Used
7E053E 1st Player - Magic used, List #2 (Black/Jikuu) Not Used
7E053F 1st Player - Magic used, List #3 (Summon/Misc) Not Used
7E0540 4 Bitwise 1st Player - Equipment category
7E0544 2 Integer 1st Player - Attack
7E0546 1 List 1st Player - Attack ID reaction (used in Counter/Barrier) Not Used

7E/0550 to 7E/059F - 2nd Player stats (World)

The information structure for the 2nd player is the same as the 1st player, so instead of repeating the information, you can simply look it up here, just take into account the address values will be shifted.

7E/05A0 to 7E/05EF - 3rd Player stats (World)

The information structure for the 3rd player is the same as the 1st player, so instead of repeating the information, you can simply look it up here, just take into account the address values will be shifted.

7E/05F0 to 7E/063F - 4th Player stats (World)

The information structure for the 4th player is the same as the 1st player, so instead of repeating the information, you can simply look it up here, just take into account the address values will be shifted.

7E/0640 to 7E/083F - Items (World)

The items, when you are not battling, are stored in this area. In the first part you have the ID of all the items in the inventory, then you have the quantity of such items in the next block. The nth item on the first list corresponds to the nth item on the second one and since there are exactly 256 addresses (or $0100) is easy to know which ID corresponds to which quantity.

7E/0640 to 7E/073F - Item Menu ID (World)

The Item ID is stored from address 7E0640 to 7E073F, which totals up to 256 items to hold.

7E/0740 to 7E/083F - Item Menu Quantity (World)

The Item Quantity is stored from address 7E0740 to 7E083F, which also totals up to 256 items to hold. Normally you can only hold up to 99 of an item, but there is a bug that allows you to underflow the value and wrap to 255 (This gets fixed once you sort the items).

7E/0840 to 7E/0949 - Jobs (World)

Jobs unlocked are stored bitwise in first 3 bytes of the list (7E0840 to 7E0842). Since there are 24 spaces but only 22 jobs, not all bits are used.

7E/0843 to 7E/086E - 1st Player Job level + ABP

A pair of data is stored in this 2 byte-size addresses (LPPP). The highest Byte stores the Job Level (L) while the other 3 (PPP) keep track of the ABP earned. There are up to 22 different jobs (or $16), so take it into account when looking for each player address (add 44 or $2C since it uses 2 bytes).

Address Size Type Description
7E0843 2 Integer 1st Player (World) - Knight Lv + ABP
7E0845 2 Integer 1st Player (World) - Monk Lv + ABP
7E0847 2 Integer 1st Player (World) - Thief Lv + ABP
7E0849 2 Integer 1st Player (World) - Dragoon Lv + ABP
7E084B 2 Integer 1st Player (World) - Ninja Lv + ABP
7E084D 2 Integer 1st Player (World) - Samurai Lv + ABP
7E084F 2 Integer 1st Player (World) - Berserker Lv + ABP
7E0851 2 Integer 1st Player (World) - Hunter Lv + ABP
7E0853 2 Integer 1st Player (World) - Mystic Knight Lv + ABP
7E0855 2 Integer 1st Player (World) - White Mage Lv + ABP
7E0857 2 Integer 1st Player (World) - Black Mage Lv + ABP
7E0859 2 Integer 1st Player (World) - Time Mage Lv + ABP
7E085B 2 Integer 1st Player (World) - Summoner Lv + ABP
7E085D 2 Integer 1st Player (World) - Blue Mage Lv + ABP
7E085F 2 Integer 1st Player (World) - Red Mage Lv + ABP
7E0861 2 Integer 1st Player (World) - Mediator Lv + ABP
7E0863 2 Integer 1st Player (World) - Chemist Lv + ABP
7E0865 2 Integer 1st Player (World) - Geomancer Lv + ABP
7E0867 2 Integer 1st Player (World) - Bard Lv + ABP
7E0869 2 Integer 1st Player (World) - Dancer Lv + ABP
7E086B 2 Integer 1st Player (World) - Mimic Lv + ABP
7E086D 2 Integer 1st Player (World) - Freelancer Lv + ABP (useless)

7E/086F to 7E/089A - 2nd Player Job level + ABP

The information structure for the 2nd player is the same as the 1st player, so instead of repeating the information, you can simply look it up here, just take into account the address values will be shifted.

7E/089B to 7E/08C6 - 3rd Player Job level + ABP

The information structure for the 3rd player is the same as the 1st player, so instead of repeating the information, you can simply look it up here, just take into account the address values will be shifted.

7E/08C7 to 7E/08F2 - 4th Player Job level + ABP

The information structure for the 4th player is the same as the 1st player, so instead of repeating the information, you can simply look it up here, just take into account the address values will be shifted.


7E/08F3 to 7E/08F6 - Player's number of abilities learned

7E/08F7 to 7E/090A - Butz' abilities Inventory

7E/090A to 7E/091E - Lenna's abilities Inventory

7E/091F to 7E/0932 - Galuf/Krile's abilities Inventory

7E/0933 to 7E/0946 - Faris abilities Inventory

7E/0947 to 7E/09xx - Misc

7E/0990 to 7E/09AD - Naming

7E/0990 to 7E/0995 - Butz Name

7E/0996 to 7E/099B - Lenna Name

7E/099C to 7E/09A1 - Galuf Name

7E/09A2 to 7E/09A7 - Faris Name

7E/09A8 to 7E/09AD - Krile Name

7E/09AE to 7E/09D3 - Misc

7E/09D4 to 7E/09F3 - Treasures opened (for the %)

7E/09F4 to 7E/0A13 - ?

7E/0A14 to 7E/0AD3 - Events

7E/0A14 to 7E/0A33 - Events: Part 1

7E/0A34 to 7E/0A53 - Events: Part 2

7E/0A54 to 7E/0AD3 - Events: Part 3

7E/0AD4 to 7E/0AF8 - World stuff

7E/0ADD to 7E/0AE0 - Vehicle: Chocobo

7E/0AE1 to 7E/0AE4 - Vehicle: Black Chocobo

7E/0AE5 to 7E/0AE8 - Vehicle: Dragon

7E/0AE9 to 7E/0AEC - Vehicle: Submarine

7E/0AED to 7E/0AF0 - Vehicle: Steamship

7E/0AF1 to 7E/0AF4 - Vehicle: Airship

7E/0AF5 to 7E/0AF8 - ?

7E/0AF9 to 7E/0BFF - ?

7E/0C00 to 7E/DFFF - Palette CGRAM DMA Buffer (NMI Handler)

7E/0E00 to 7E/110B - ?

7E/110C to 7E/1125 - Map Entry data

7E/1126 to 7E/1CFF - ?

7E/1D00 to 7E/1DDD - SPC Data (music handler)

7E/1DDE to 7E/1EFF - ?

7E/1F00 to 7E/1FFF - ?

7E/2700 to 7E/XXXX - NOT in Battle

These addresses store different information depending whether or not you are battling.

7E/2700 to 7E/274F - (In Menu) Player stats

7E/2815 to 7E/2817 - (In Shops) Gil

7E/2827 to 7E/282D - (In Shops) Items ID

7E/282E to 7E/284D - (In Shops) Items Price

7E/2000 to 7E/???? - Battle

7E/2000 to 7E/207F - 1st Player stats (Battle)

7E/2080 to 7E/20FF - 2nd Player stats (Battle)

7E/2100 to 7E/207F - 3rd Player stats (Battle)

7E/2180 to 7E/21FF - 4th Player stats (Battle)

7E/2200 to 7E/227F - 1st Enemy stats (Battle)

7E/2280 to 7E/22FF - 2nd Enemy stats (Battle)

7E/2300 to 7E/237F - 3rd Enemy stats (Battle)

7E/2380 to 7E/23FF - 4th Enemy stats (Battle)

7E/2400 to 7E/247F - 5th Enemy stats (Battle)

7E/2480 to 7E/24FF - 6th Enemy stats (Battle)

7E/2500 to 7E/257F - 7th Enemy stats (Battle)

7E/2580 to 7E/25FF - 8th Enemy stats (Battle)

7E/2600 to 7E/26FF - ?

7E/2700 to 7E/2733 - ?

7E/2734 to 7E/2833 - Item Menu ID (Battle)

7E/2834 to 7E/2933 - Item Menu Quantity (Battle)

7E/2934 to 7E/2B99 - ?

7E/2B9A to 7E/2BA1 - Dropped Items ID

7E/2BA2 to 7E/2BA9 - Dropped Items Quantity

7E/2BAA to 7E/2C9B - ?

7E/2C9C to 7E/2CA8 - Game Settings

7E/2CA9 to 7E/3CF0 - ?

7E/3CF1 to 7E/3CFB - 1st Player: Timer status flags

7E/3EEF to 7E/3EFE - Monster Encounter data (Copy of D0/3000)

7E/3EFF to 7E/3F1E - 1st Enemy stats

7E/3F1F to 7E/3F3E - 2nd Enemy stats

7E/3F3F to 7E/3F5E - 3rd Enemy stats

7E/3F5F to 7E/3F7E - 4th Enemy stats

7E/3F7F to 7E/3F9E - 5th Enemy stats

7E/3F9F to 7E/3FBE - 6th Enemy stats

7E/3FBF to 7E/3FDE - 7th Enemy stats

7E/3FDF to 7E/3FFE - 8th Enemy stats

7E/3FFF - Enemy Group Visible

7E/4000 to 7E/4007 - Enemy Coordinates

7E/4008 to 7E/4017 - Enemy Name ID

7E/4018 to 7E/401F - Enemy Visible

7E/4020 to 7E/402F - Enemy Sprite