Claim set · data/claims/ff2.yaml

Final Fantasy II (everything8215's disassembly)

Game: Final Fantasy II.

A Fight action rolls 0–100 once per point of the attacker's hit multiplier (adjusted by haste or slow, at least 1) and counts the rolls under its hit %, then rolls once per point of the target's evade multiplier and counts the rolls under its evade %. The evaded rolls are subtracted from the hits, at least 0, and the rest are the hits that deal damage. Blind halves the attacker's hit % and the target's evade %. The check returns no successes when the attacker is a toad or mini, and the disassembly marks as a bug that the evade check reads the attacker's status too. ff2/hits

About: Final Fantasy II Multi-hit attack

CodeFinal Fantasy II (NES) disassembly and ROM info · ff2j.asm#L16227-L16290; [ do fight effect ] … 0C/AFBF: B1 9F LDA ($9F),Y ; main hand hit multiplier … 0C/AFC4: 71 9F ADC ($9F),Y ; add haste/slow modifier … 0C/AFD1: E9 14 SBC #$14 ; subtract 20 … 0C/AFDD: A2 01 LDX #$01 ; min 1 … 0C/AFE6: B1 9F LDA ($9F),Y ; main hand hit % … …Final Fantasy II (NES) disassembly and ROM info · ff2j.asm#L17943-L17971; [ check for hit ] ; $44: hit % ; $46: number of hit attempts ; $48: number of successful hits (out) ; *** bug *** should use target status for evade checks 0C/BC2C: A9 00 LDA #$00 ; start with 0 hits … 0C/BC40: A4 46 LDY $46 0C/BC42: A2 00 LDX #$00 0C/BC44: A9 64 LDA #$64 0C/BC46: 20 11 FD JSR $FD11 ; random (X..A) 0C/BC49: 38 SEC …Checked by claude-agent, 2026-10-21 — read each pinned range against every part of the statement

Cited by: Final Fantasy II, Hit chance, Multi-hit attack

Each hit that gets through deals attack plus a random 0 to attack, less the target's defense (at least 0), and the hits add up. Each hit also rolls 0–100, and a roll under 5 makes it critical, adding the attack again. ff2/damage

About: Final Fantasy II Damage formula

Value
{
 "critBelow": 5,
 "rollMax": 100
}
CodeFinal Fantasy II (NES) disassembly and ROM info · ff2j.asm#L18008-L18074; [ calculate damage ] ; $44: attack ; $46: defense ; $48: number of hits ; +$4A: damage … ; start of hit loop 0C/BCA7: A2 00 LDX #$00 0C/BCA9: A5 44 LDA $44 0C/BCAB: 20 11 FD JSR $FD11 ; random (X..A) 0C/BCAE: 18 CLC 0C/BCAF: 65 44 ADC $44 ; attack * (0..1) …Checked by claude-agent, 2026-10-21 — read each pinned range against every part of the statement

Cited by: Critical hit, Damage formula, Damage modifier, Final Fantasy II, Multi-hit attack

When the weapon's type bonus matches the target's type, or the weapon's element matches one of the target's weak elements, the attack power gains 20 before the damage is rolled. ff2/weakness

About: Final Fantasy II Elemental weakness

Value
{
 "attackBonus": 20
}
CodeFinal Fantasy II (NES) disassembly and ROM info · ff2j.asm#L16331-L163600C/B086: B1 9F LDA ($9F),Y ; main hand attack power … 0C/B090: B1 9F LDA ($9F),Y ; main hand type bonus 0C/B092: A0 15 LDY #$15 0C/B094: 31 A1 AND ($A1),Y ; target type 0C/B096: D0 0A BNE $B0A2 0C/B098: A0 1B LDY #$1B 0C/B09A: B1 9F LDA ($9F),Y ; main hand element 0C/B09C: A0 16 LDY #$16 0C/B09E: 31 A1 AND ($A1),Y ; target weak elements 0C/B0A0: F0 0D BEQ $B0AF 0C/B0A2: 18 CLC …Checked by claude-agent, 2026-10-21 — read each pinned range against every part of the statement

Cited by: Damage modifier, Elemental weakness, Final Fantasy II

A character's Run command rolls 0–100 and escapes when the roll is under the runner's own evade %, unless the battle forbids escape; no level or enemy stat enters. ff2/run

About: Final Fantasy II Fleeing

CodeFinal Fantasy II (NES) disassembly and ROM info · ff2j.asm#L15267-L152810C/A865: C9 FE CMP #$FE 0C/A867: D0 23 BNE $A88C ; branch if not running away 0C/A869: AD 4B 7B LDA $7B4B 0C/A86C: D0 18 BNE $A886 0C/A86E: A2 00 LDX #$00 0C/A870: A9 64 LDA #$64 0C/A872: 20 11 FD JSR $FD11 ; random (X..A) 0C/A875: A0 01 LDY #$01 0C/A877: F1 9F SBC ($9F),Y ; check vs. evade % 0C/A879: B0 0B BCS $A886 ; branch if check failed 0C/A87B: A9 01 LDA #$01 0C/A87D: 8D B7 7C STA $7CB7 ; ran away …Final Fantasy II (NES) disassembly and ROM info · ram-map.txt#L575-L576 — The battle stats at the runner's pointer, so offset 1 is the runner's evade %.$00 evade mult. $01 evade %Checked by claude-agent, 2026-10-21 — read each pinned range against every part of the statement

Cited by: Final Fantasy II, Fleeing

Final Fantasy rolls once per swing against a single hit chance that already has the defender's evade subtracted; Final Fantasy II splits that into two sets of rolls, the attacker's against its hit % and the defender's against its evade %, and subtracts the defender's successes from the attacker's. ff2/hits-changes-ff1

About: Final Fantasy II Hit chance

CodeFinal Fantasy Disassembly · Final Fantasy Disassembly/bank_0C.asm#L4377-L4399LDA #MATHBUF_HITCHANCE ; add their hit rate to their hit chance … LDX btl_defender_evade ; the hit chance.Final Fantasy Disassembly · Final Fantasy Disassembly/bank_0C.asm#L4471-L4494LDX #200 JSR RandAX ; [0,200] … CMP math_randhit ; if hit chance is < randhit value, then this was a miss. Jump aheadFinal Fantasy II (NES) disassembly and ROM info · ff2j.asm#L16260-L162900C/AFF9: 20 2C BC JSR $BC2C ; check for hit … 0C/B006: B1 A1 LDA ($A1),Y ; target's evade multiplier … 0C/B00B: B1 A1 LDA ($A1),Y ; target's evade % … 0C/B020: 20 2C BC JSR $BC2C ; check for hit … 0C/B02C: A5 52 LDA $52 ; subtract evaded hitsChecked by claude-agent, 2026-10-21 — read each pinned range against every part of the statement

Cited by: Final Fantasy, Final Fantasy II, Hit chance, Multi-hit attack