Final Fantasy 5
ROM Map
Offset | Description | Info |
---|---|---|
043DAA |
Audio / Sample Indexes | |
100200 - 102FFF? |
Enemy Data | |
11020D - 110734 |
Weapon Data | |
110812 |
Armor Data | |
117200 |
Starting Stats | |
112600 |
Equipment Restrictions |
Weapon Data
Format
Each weapon is 12 bytes in length.
Usage
| Class Restrictions
| | Effect
| | | Compatibilities
| | | | Magic/Abil Cast Type
| | | | | 1?
| | | | | | Attack Power
| | | | | | | 2?
| | | | | | | | 3 Attribute (Element?)
| | | | | | | | | Magic/Abil Cast Chance
| | | | | | | | | | Magic/Abil Cast
| | | | | | | | | | | 4?
|__|__|__|__|__|__|__|__|__|__|__|_
80-40-80-00-00-78-03-30-08-00-00-00 Bare Hands
80-02-80-16-04-78-07-32-00-00-00-00 (Knife) Knife
Usage
Value | Description |
---|---|
80 |
Normal Equip |
04 |
Shatters when used as an item |
Class Restriction
Value | Description |
---|---|
40 |
Default Weapon (Bare hands) |
00 |
No Classes |
01 |
All Classes |
02 |
All but Monk and White Mage |
03 |
Ninja only |
04 |
Knight, Mystic Knight, Blue Mage, and Red Mage. |
05 |
Knight Only |
06 |
Dragoon Only |
07 |
Berserker Only |
08 |
Berserker Only |
09 |
Samurai Only |
0A |
Black Mage, Red Mage, Blue Mage, Time Mage, Summoner, Mimic |
0B |
White Mage, Red Mage, Time Mage, Chemist, Mimic |
0C |
White Mage, Time Mage, Chemist |
0D |
Hunter Only |
0E |
Bard Only |
0F |
Mediator Only |
10 |
Geomancer Only |
11 |
Knight, Dragoon, Samurai, Berserker, Mystic Knight, Blue Mage, Mimic |
12 |
Knight, Dragoon, Samurai, Berserker, Mystic Knight, Mimic |
13 |
Monk, Thief, Ninja, Hunter, Blue Mage, Red Mage, Mediator, Chemist, Dancer, Mimic |
14 |
White Mage, Black Mage, Time Mage, Blue Mage, Red Mage, Summoner, Chemist, Geomancer, Bard, Dancer, Mimic |
15 |
Dancer Only |
16 |
Knight, Dragoon, Samurai, Berserker, Mystic Knight, Mimic |
17 |
Not White Mage, Black Mage, Time Mage, Summoner, Geomancer, Bard |
18 |
White Mage, Black Mage, Time Mage, Blue Mage, Red Mage, Summoner, Chemist, Geomancer, Bard, Dancer, Mimic |
19 |
Knight, Dragoon, Samurai, Berserker, Mystic Knight, Mimic |
1A |
Not Knight, Dragoon, Samurai, Berserker, Mystic Knight |
20 |
No Classes |
21 |
No Classes |
22 |
No Classes |
23 |
No Classes |
24 |
No Classes |
25 |
|
26 |
|
27 |
|
28 |
|
29 |
|
2A |
No Classes |
2B |
|
2C |
|
2D |
|
2E |
|
2F |
|
30 |
|
4A |
Black Mage, Red Mage, Blue Mage, Time Mage, Summoner, Mimic |
Compatibilities
Value | Description |
---|---|
00 |
None |
15 |
Magic Sword OK and Double Grip OK |
16 |
Magic Sword OK |
17 |
Jump OK |
18 |
Back Row OK and Double Grip OK |
19 |
Double Grip OK |
1A |
Double Grip OK |
1B |
Double Grip ONLY and Back Row OK |
1C |
Halves MP During Battle |
1D |
Improves "Steal" |
1E |
Increases Elemental Magic Strength |
1F |
Improves "Holy" |
23 |
Back Row OK |
40 |
Nothing? |
55 |
Double Grip OK and Magic Sword OK |
58 |
Back Row OK and Double Grip OK |
59 |
Double Grip OK |
5A |
Double Grip OK |
69 |
Uses MP and Double Grip OK |
9B |
Double Grip ONLY and Back Row OK |
Cast Type
Value | Description |
---|---|
x6 |
So 06 and multiples makes Random cast use Abilities |
xC |
So 0C and multiples makes Random cast use Magics |
Random Cast
This is what the weapon Casts when it is swung. The ones that say "Nothing?" are ones that in my testing, did not do anything, but may infact do something under other conditions that I was too lazy to expirament with. You can also assume that any of the ones with a question mark (?) are unsure, if you can correct one of them, please let me know, I'd be much obliged.
If they are blank, or unlisted, this means they are untested (512 values is alot...). If you get the chance to test them, please let me know what they do.
Due to the fact that abilities normally require certain conditions or situations, some of them simply won't be useful (Throw for instance). Additionally, Magics/Abilties with a special method of targeting (Death Roulette, for instance) almost always do not keep their targeting mode, and will simply effect the target struck by the weapon.
*1 : Does Nothing
*2 : Big Red X
*3 : Freezes Game
*4 : Casts Fire Sword
*5 : seems to 100% defence from physical attacks
-##---Magic-(0C)------------------Ability-(06)---------------------
00 = Nothing : Nothing
01 = '' : !Other *1
02 = '' : !Item *2
03 = '' : !Change
04 = '' : !Defence
05 = '' : !Fight
06 = '' : !Protect
07 = '' : !Kick
08 = '' : !BuildUp
09 = '' : !Chakra
0A = '' : !Escape
0B = '' : !Steal
0C = '' : !Capture
0D = '' : !Jump
0E = '' : !DrgnSwd
0F = '' : !Smoke
10 = '' : !Image
11 = Nothing : !Throw (Throws Nothing)
12 = Cure : !SwdSlap
13 = Scan : !GP Toss
14 = Antdt : !Slash
15 = Mute : !Animals
16 = Shell : !Aim *3
17 = Mini : !X-Fight
18 = Cure2 : !Summon *1
19 = Raise : !Peep
1A = Confu : !Scan
1B = Blink : !Tame
1C = Shell : !Control
1D = Esuna : !Catch (Never Works)
1E = Cure3 : !Release (Does 0 damage to a fixed target)
1F = Wall : !Mix (Mysidian Rabbit)
20 = Bersrk : !Drink *2
21 = Arise : !Pray
22 = Holy : !Revive
23 = Dispel : !Terrain
24 = Fire : !Dummy01 (Nothing)
25 = Ice : !Conceal *3 (No !Appear command)
26 = Bolt : !Appear (hahaha)
27 = Venom : !Dummy02 *4
28 = Sleep : !Sing *4
29 = Toad : !Flirt
2A = Fire2 : !Dance
2B = Ice2 : !Mimic *3
2C = Bolt2 : !MgSwd (Lv.1) *4 To cast the actual magics
2D = Drain : !MgSwd (Lv.2) *4 Such as the Other Magic swords
2E = Break : !MgSwd (Lv.3) *4 Time Magic and Such, Set the
2F = Bio : !MgSwd (Lv.4) *4 Cast type byte to 0C and set the
30 = Fire3 : !MgSwd (Lv.5) *4 Cast according to the magic
31 = Ice3 : !MgSwd (Lv.6) *4 values (on the left)
32 = Bolt3 : !White (Lv.1) *4
33 = Flare : !White (Lv.2) *4
34 = Doom : !White (Lv.3) *4
35 = Asper : !White (Lv.4) *4
36 = Speed : !White (Lv.5) *4
37 = Slow : !White (Lv.6) *4
38 = Regen : !Black (Lv.1) *4
39 = Mute : !Black (Lv.2) *4
3A = Haste : !Black (Lv.3) *4
3B = Float : !Black (Lv.4) *4
3C = Demi : !Black (Lv.5) *4
3D = Stop : !Black (Lv.6) *4
3E = Exit : !Time (Lv.1) *4
3F = Comet : !Time (Lv.2) *4
40 = Slow2 : !Time (Lv.3) *4
41 = Return : !Time (Lv.4) *4
42 = Demi2 : !Time (Lv.5) *4
43 = Haste2 : !Time (Lv.6) *4
44 = Old : !Call (Lv.1) *4
45 = Meteo : !Call (Lv.2) *4
46 = Quick : !Call (Lv.3) *4
47 = X-zone : !Call (Lv.4) *4
48 = Junk : !Call (Lv.5) *4
49 = : !Call (Lv.6) *4
4A = : !Wht/Blk (Lv.1) *4
4B = : !Wht/Blk (Lv.2) *4
4C = : !X-Magic
4D = : !Blue
4E = : *1
4F = Junk : Woopdee + !Jump
50 = Junk : Woopdee
51 = Junk : "Throbbing"
52 = : Dummy03 (Jump)
53 = : Rage (Geomancy)
54 = : Iris on Lenna and show stats *3
55 = : !Fight
56 = Junk : Quake (Geomancy)
57 = Power Song? : Nothing
58 = Speed Song? : Nothing
59 = Strength Song? : !Steal
5A = MP Song? : !Change
5B = LVL song? : Squirrel (Animals)
5C = Requium? : !Defence
5D = Love Song? : Mysidian Rabbit (Animals)
5E = Temptation Song? : !BuildUp
5F = Chocobo : *5
60 = Sylph : *5
61 = Remora : !Capture
62 = Shiva : *5
63 = Ramuh : !X-Fight
64 = Ifrit : *5
65 = Titan : !Revive
66 = Golem : *5
67 = Shoat : *5 (but does strike)
68 = Carbunkle : *5
69 = Syldra/Hydra : Freezes Game
6A = Odin : *5
6B = Phoenix :
6C = Leviathan :
6D = Bahamut :
6E = Quake (Geogmancy) :
6F = Branch Spear (Geomancy) :
70 = Nothing? :
71 = Absorbs HP :
72 = Absorbs MP :
73 = Nothing? :
74 = Some Song :
75 = Some Song :
76 = Song + Dmg + Confuse :
77 = Song + DMG :
78 = Nothing? :
79 = MP Absorb :
7A = HP Absorb :
7B = Confuse :
7C = Wall/Shell or Something :
7D = Nothing? :
7E = Nothing? :
7F = Engtangle? :
80 = Goblin Punch? :
81 = Goblin Punch? :
82 = Condemn :
83 = Roulette :
84 = Aqua rake :
85 = Lvl 5 Death :
86 = Lvl 4 Gravi :
87 = Lvl 2 Old :
88 = Lvl 3 Flare :
89 = Frog Song :
8A = Small Melody :
8B = Flash :
8C = Time Slip :
8D = Moon Flute :
8E = Death Claw :
8F = Aero :
90 = Aero 2 :
91 = Aero 3 :
92 = Emission :
93 = Goblin Punch :
94 = Black Shock :
95 = Gaurd Off :
96 = Fusion/Pep Up :
97 = Mind Blast :
98 = Vampire :
99 = Magic Hammer :
9A = Big Gaurd :
9B = Exploder :
9C = ???? (The actual Attack) :
9D = 1000 Needles :
9E = White Wind :
9F = Missile :
A0 = Stars (Toad) :
A1 = ? Red Rings :
A2 = ? Run Noise :
A3 = Nothing :
A4 = ? Halts Gauge :
A5 = Instant Kill :
A6 = Funky GFX (Random Effect) :
A7 = Delta GFX (Break) :
A8 = Nothing :
A9 = ? Flash :
AA = Nothing :
AB = Rage (Geomancy) :
AC = Nothing :
AD = ? Scan GFX :
AE = ? Blue Ring :
AF = Grim Reaper (Death) :
B0 = Slash+Skull (Death) :
B1 = Explosion (Death) :
B2 = Some Entangle :
B3 = Break :
B4 = Break :
B5 = Poison thingy :
B6 = Purple Balls :
B7 = Flash (Zombie) :
B8 = Spores (Zombie) :
B9 = Smokepuffs (Zombie) : Happy Jig *1
BA = Nothing?
BB =
BC =
BD =
BE =
BF = Nothing?
C0 = Fah?
C1 = Needle
C2 = Whirl Wind
C3 = Bone thingy
C4 = Areo GFX, Whirl Wind DMG
C5 = Mucus
Enemy Data
An enemy consists of 32 bytes.
a b c d e f g h i j k l m n o p
| | | | | | | | | | | | | | | |
A- 0A-05-01-00-00-00-05-00-10-00-03-00-0A-00-14-00
B- 02-00-80-00-00-00-00-00-00-00-00-00-00-00-00-06
Aa = Speed (Gauge time)
Ab = Attack Power
Ac = Hits? An Attack Multiplier of some sort.
Ad = Magic Defense
Ae =
Af =
Ag =
Ah =
Ai-Aj = HP, First 1s and 255s, then 4095s and 65535s (I.E. 05 00 = 0005 = 5)
Ak-Al = MP, ''
Am-An = Experience, ''
Ao-Ap = Gil, ''
Ba = Attack Graphic & Sound Effect
ยค 02 = Horizontal Grey Slash
ยค 03 = Horizontal Grey-White Slash
ยค 04 = Horizontal White Slash
ยค 05 = Horizontal Blue-White Slash
ยค 06 = Horizontal Blue Slash
ยค 10 = Diagonal Green Slash
ยค 11 =
ยค 12 = Diagonal White Slash
ยค 20 = One Grey Star
ยค 60 = Staff (not visible on characters, but does make them dance if it misses @_@)
ยค 80 = Three Big Red-orange Stars
ยค 88 = Two Yellow Spiral Slashes
ยค A0 = Barf
ยค FF = Little Weird Arrow
Bb = ? Strength (Fire?)
Bc
Bd
Be
Bf
Bg
Bh = Weakness
Bi
Bj
Bk = Starting Condition, Uses bitwise operands (I.E. C6 would be Blind + Zombie + Stone + Wounded) :
00 = Normal
01 = Blind
02 = Zombie
04 = Poison
08 = Float
10 = Mini
20 = Toad
40 = Stone
80 = Wounded
Bl
Bm = Special Attributes,
ยค 01 = 1hp Regen
ยค 02 = Invulnerablity to weapons
ยค 04 = Unsure
ยค 08 = Unsure
ยค 10 = Unsure
ยค 20 = No Idea
ยค 40 = Decreased Damage from weapons
ยค 80 = Wall
Bn
Bo = Name, Enter the byte of the enemy for its name (00 = Goblin, etc...)
Bp = Level, 00 to 255
0x1002000--- Goblin SPD 10, ATK 5, MND 0, EVA 0, 00, 00, 05
0A-05-01-00-00-00-05-00-10-00-03-00-0A-00-14-00 : HP 16, MP 3, EXP 10, Gil 20
02-00-80-00-00-00-00-00-00-00-00-00-00-00-00-06 : Level 6
Steal Tonic, Goblin Punch
0x1002020--- Killer Bee SPD 10, ATK 5,, EVA 10, 00, 00, 05
0A-05-02-0A-00-00-05-00-14-00-00-00-0F-00-14-00 : HP 20, MP 0, EXP 15, GIL 20
00-20-30-00-00-00-40-00-00-00-88-00-00-00-01-01 : Level 1
SPC Pointer Index
Pointer | Values | Description / Song |
---|---|---|
C5E5E8 |
00 |
Ahead on Our Way |
C5EB7A |
01 |
The Fierce Battle |
C5F1B4 |
02 |
A Presentiment |
C5FA57 |
03 |
Go go Boco! |
C5FF1D |
04 |
Pirates Ahoy! |
C60395 |
05 |
Tenderness in the Air |
C6074E |
06 |
Fate in Haze |
C60BCD |
07 |
Critter Tripper Fritter! |
C60EE3 |
08 |
The Prelude |
C612D8 |
09 |
The Last Battle |
C61E9D |
0A |
Requiem |
C61F9F |
0B |
Nostalgia |
C62181 |
0C |
Cursed Earths |
C625C2 |
0D |
Lenna's Theme |
C6287D |
0E |
Victory's Fanfare |
C62AFD |
0F |
Deception |
C62CE4 |
10 |
The Day will Come |
C62F71 |
11 |
...silence |
C62F8D |
12 |
Exdeath's Castle |
C63257 |
13 |
My Home, Sweet Home |
C63647 |
14 |
Waltz Suomi |
C63CE6 |
15 |
Sealed Away |
C641A2 |
16 |
The Four Warriors of Dawn |
C6453F |
17 |
Danger! |
C64781 |
18 |
The Fire-Powered Ship |
C64AB9 |
19 |
As I Feel, You Feel |
C64CD9 |
1A |
Mambo de Chocobo! |
C65112 |
1B |
Music Box |
C652B0 |
1C |
Intension of the Earth |
C65904 |
1D |
The Dragon Spreads its Wings |
C65CC1 |
1E |
Beyond the Deep Blue Sea |
C6BC98 |
1F |
Prelude of Empty Skies |
C66079 |
20 |
Searching the Light |
C665FA |
21 |
Harvest |
C66E3B |
22 |
Gilgamesh |
C67861 |
23 |
Four Valiant Hearts |
C6B710 |
24 |
The Book of Sealings |
C67E53 |
25 |
What? |
C6A4A3 |
26 |
Hurry! Hurry! |
C67FC4 |
27 |
Unknown Lands |
C685A3 |
28 |
The Airship |
C68AB5 |
29 |
Fanfare #1 |
C68BB7 |
2A |
Fanfare #2 |
C6C032 |
2B |
The Battle |
C68D5A |
2C |
Walking the Snowy Mountains |
C69074 |
2D |
The Evil Lord, Exdeath |
C6948A |
2E |
The Castle of Dawn |
C6990D |
2F |
I'm a Dancer |
C69A9F |
30 |
Reminiscence |
C69CE0 |
31 |
Run! |
C6A1AA |
32 |
The Ancient Library |
C6A7BE |
33 |
Royal Palace |
C6ACF6 |
34 |
Good Night! |
C6B364 |
35 |
Piano lesson 1 |
C6AD7B |
36 |
Piano lesson 2 |
C6B40E |
37 |
Piano lesson 3 |
C6AE4B |
38 |
Piano lesson 4 |
C6B603 |
39 |
Piano lesson 5 |
C6B4E2 |
3A |
Piano lesson 6 |
C6B030 |
3B |
Piano lesson 7 |
C6B1CB |
3C |
Piano lesson 8 |
C6BA96 |
3D |
Musica Machina |
C6C58B |
3E |
(a meteor is falling) |
C6C7AE |
3F |
The Land Unknown |
C6CD42 |
40 |
The Decisive Battle |
D0C800 |
41 |
The Silent Beyond |
C6DB7B |
42 |
Dear Friends |
C6E1C5 |
43 |
Final Fantasy |
C6E844 |
44 |
A New Origin |
C6FCF2 |
45 |
(crickets chirping) |
C6FDC4 |
46 |
a shore |
C6FDFE |
47 |
the tide rolls in |
SPC Commands
00-0D - Play note, C
0E-1B - Play note, C#
1C-29 - Play note, D
2A-37 - Play note, D#
38-45 - Play note, E
46-53 - Play note, F
54-61 - Play note, F#
62-6F - Play note, G
70-7D - Play note, G#
7E-8B - Play note, A
8C-99 - Play note, A#
9A-A7 - Play note, B
A8-BF - Play note, B#
C0-CE - rest
D2 xx - Set Instrument Volume to xx
D3 xx - Volume Slide
D4 xx - Pan Channel Left / Right (Reverse Stereo)
$00 = Right
$64 = Middle
$FF = Left
D5 xx yy - Channel Pan Slide
D7 ss tt dd - Vibrato:
SS = Speed
TT = Time Until Vibrato
DD = Depth
D8 - Vibrato Off
D9 xx yy zz - Tremolo (?)
DA - Tremelo Off (?)
DB xx yy zz - Pan Loop On (?)
DC - Pan Loop Off (?)
DD xx - Noise
DE - Noise Off
E0 - Vibrato Off (?)
E1 - ???
E2 - Echo On
E3 - Echo Off
E4 xx - Change Pitch to XX
E5 xx - Length of Next Note is XX
E5 - Go Up an Octave
E6 - Go Down an Octave
E7 xx - Transpose
E8 xx - Transpose Relative
E9 xx - Finetune
EA xx - Change Instrument to XX
F0 xx - Start Loop (xx + 1 times)
F1 - End Loop
F2 - End of Channel
F3 xx - Change Tempo to XX
F4 xx yy - Tempo Slide (?)
F5 xx - Echo Volume (?)
F6 xx yy - Echo Volume Slide (?)
F7 xx yy - ???
F8 xx - Set Global SPC Volume to XX
F9 xx yy zz - End Loop After XX Times and Go To ZZYY
FC-FF - End Channel
SRAM Format / Save Format
This document is notes on the save data in Final Fantasy V. With this information you can modify data however you wish.
FFV has 8 Kilobytes of SRAM divided up into 5 parts. The first four parts are the 4 save slots. They are arranged on $700
byte increments but only $600
bytes are used in each file. At $1C00
most of the area is empty except for the end around $1FF0
which holds data about each save file. All four save files are the same data just at different locations. The final area will be explained first.
Offset | Description |
---|---|
$0000 |
Save Slot 1 |
$0700 |
Save Slot 2 |
$0E00 |
Save Slot 3 |
$1500 |
Save Slot 4 |
$1FF0 |
Checksum and Use Table |
At $1FF0
, which would appear at $7FF0
relative to the SNES Memory Map, there is a table of four 16-bit checksums. Then at $1FF8
there is another table which contains $E41B
if a save file is in use, anything else and it is not. The checksums are generated by taking the $600
byte file and adding each 16-bit word together. Carry is used so if the value overflows from $FFFF
you will set carry and impact the next addition with ADC
.
Example: $FFFF + $0001 = $0000 + Carry
Final Result: $0001
Whenever a file appears for loading or saving the checksum is quickly calculated to determine if the file is valid. If the checksum fails or the $1FF8
table entry doesn't contain $E41B
then it appears blank, however it may still contain data as it is not overwritten.
You can use this code patch to disable failure of checksums allowing for any data to be consider valid.
$C2/F576 : EA
$C2/F577 : EA
Here is a disassembly related to saving. Disassembly:
$C2/F561 A5 F6 LDA $F6 [$00:01F6]
$C2/F563 29 03 00 AND #$0003
$C2/F566 0A ASL A
$C2/F567 AA TAX
$C2/F568 BD F8 7F LDA $7FF8,x[$30:7FF8] ; Check Slot In-Use Table
$C2/F56B C9 1B E4 CMP #$E41B
$C2/F56E D0 0D BNE $0D [$F57D] ; If not $E41B Skip
$C2/F570 20 88 F5 JSR $F588 [$C2:F588] ; $F588 Returns Checksum
$C2/F573 DD F0 7F CMP $7FF0,x[$30:7FF0] ; Compare against Csum
$C2/F576 D0 0A BNE $0A [$F582] ; table.
$C2/F578 A9 00 00 LDA #$0000 ; $0000 File Valid
$C2/F57B 80 08 BRA $08 [$F585]
$C2/F57D A9 00 80 LDA #$8000 ; File not in Use
$C2/F580 80 03 BRA $03 [$F585]
$C2/F582 A9 00 40 LDA #$4000 ; Bad Checksum
$C2/F585 85 E0 STA $E0 [$00:01E0]
$C2/F587 60 RTS
$C2/F588 8B PHB
$C2/F589 DA PHX
$C2/F58A 5A PHY
$C2/F58B 08 PHP
$C2/F58C F4 30 30 PEA $3030
$C2/F58F AB PLB
$C2/F590 AB PLB
$C2/F591 C2 20 REP #$20
$C2/F593 A6 FC LDX $FC [$00:01FC]
$C2/F595 A0 00 06 LDY #$0600 ; Save File Size
$C2/F598 A5 8E LDA $8E [$00:018E]
$C2/F59A 18 CLC
$C2/F59B 7D 00 00 ADC $0000,x[$30:0000]
$C2/F59E E8 INX
$C2/F59F E8 INX
$C2/F5A0 88 DEY
$C2/F5A1 88 DEY
$C2/F5A2 D0 F7 BNE $F7 [$F59B]
$C2/F5A4 28 PLP
$C2/F5A5 7A PLY
$C2/F5A6 FA PLX
$C2/F5A7 AB PLB
$C2/F5A8 60 RTS
Interesting Save Slot File Addresses
There are 4 character slots at the beginning of save files. Each character slot is $50
bytes.
Offset | Description |
---|---|
$0000 |
Character Slot 1 |
$0050 |
Character Slot 2 |
$00A0 |
Character Slot 3 |
$00F0 |
Character Slot 4 |
Within each character slot.
Offset | Description |
---|---|
$00 |
Bit Toggle |
$01 |
Current Job |
$02 |
Current Level |
$03 |
Experience Points (24-bit) |
$06 |
Current HP (16-bit) |
$08 |
Maximum HP (16-bit) |
$0A |
Current MP (16-bit) |
$0C |
Maximum MP (16-bit) |
$0E |
Equipped Head Item |
$0F |
Equipped Body Item |
$10 |
Equipped Relic Item |
$13 |
Equipped R-Hand Item |
$14 |
Equipped L-Hand Item |
$16 |
Battle Command Slot 1 |
$17 |
Battle Command Slot 2 |
$18 |
Battle Command Slot 3 |
$19 |
Battle Command Slot 4 |
$1A |
Status (ex: Poison) |
$24 |
Strength |
$25 |
Agility |
$26 |
Vitality |
$27 |
Magic Power |
$3A |
Job Level |
$3B |
Ability Points |
Offset 00
Bit 7 toggle if Character is in Front Row or Back Row. Bit 6 toggle if Character is present in party or empty. Bits 012 determine Character, Bartz, Lenna, Galuf, Faris, Krile.
Job Table
Value | Job |
---|---|
$00 |
Knight |
$01 |
Monk |
$02 |
Thief |
$03 |
Dragoon |
$04 |
Ninja |
$05 |
Samurai |
$06 |
Berserkr |
$07 |
Hunter |
$08 |
MysticKnt |
$09 |
WhiteMage |
$0A |
BlackMage |
$0B |
TimeMage |
$0C |
Summoner |
$0D |
BlueMage |
$0E |
Red Mage |
$0F |
Mediator |
$10 |
Chemist |
$11 |
Geomancr |
$12 |
Bard |
$13 |
Dancer |
$14 |
Mimic |
$15 |
Normal |
Inventory for each slot is at $140
. The first $100
bytes make up a table of Item types. For example $E0
is a Potion. At $240
is another $100
byte table for how many of each item you have.
At $03F7
there appears to be bit tables which store what abilities each character has learned. No exact details available yet. May be $14
byte tables for each character.
Masks
These Masks apply to all characters.
$0450
- Sword Ability Bitmask, then White Magic Ability Bit Mask then Black Magic, then DmMagic, then Esper, then Song, Ending at $045B
as last byte of Songs.
$0447
- Money / Gold / Gil (24-bit)
$05D8
- Map X Position
$05D9
- Map Y Position
Compression
In this game compression, an 8-bit value is used to determine the nature of the following groups of data. A value of 1 indicated an uncompressed value. This means one byte is read from the input file and then written to the output file.
A value of 0 indicated a compressed value. This means two bytes are read, from which a pointer to previous data can be generated. The pointer contains the length of the data to be retrieved as well as the offset for it to be retrieved from. Since pointers aren't used for 1-2 byte values, a value of 3 is added to the length.
LZ Compression combined with Bit Mapping
Bit Mapping
0 = Compressed Text
1 = Normal Text
Configuration of 2Bytes LZ
O4 O5 O6 O7 O8 O9 O10 O11 | O1 O2 O3 L1 L2 L3 L4 L5
O = Offset Pointer
L = Lenght
Info from ffbin and JCE3000GT.
SRAM format described by MottZilla, January 19th, 2012.
Compression described by Anime_World, 05-06-06 02:42 PM.
Weapons, Enemy data described by YDienyddiwrDa, 02-22-03 04:11 AM.