<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.ffrtt.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=NFITC1</id>
	<title>Final Fantasy Inside - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ffrtt.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=NFITC1"/>
	<link rel="alternate" type="text/html" href="https://wiki.ffrtt.ru/index.php/Special:Contributions/NFITC1"/>
	<updated>2026-08-04T09:33:43Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.32.1</generator>
	<entry>
		<id>https://wiki.ffrtt.ru/index.php?title=FF7/DamageFormula&amp;diff=5886</id>
		<title>FF7/DamageFormula</title>
		<link rel="alternate" type="text/html" href="https://wiki.ffrtt.ru/index.php?title=FF7/DamageFormula&amp;diff=5886"/>
		<updated>2021-05-20T13:16:40Z</updated>

		<summary type="html">&lt;p&gt;NFITC1: /* 0: Physical Accuracy Check */ There is an enemy check on the Dex bonus that I didn't notice before. Physical Chance is unaffected.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Accuracy Function considerations==&lt;br /&gt;
Each of the upper nybble of the damage calculation determines what checks are done to accuracy of the action and whether or not it will connect, be critical or miss. Here are the functions in order processed based on the upper nybble:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Upper Nybble&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Functions&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| None (always hits)&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| [[FF7/DamageFormula#0:_Physical_Accuracy_Check|Physical Accuracy]], [[FF7/DamageFormula#2:_Critical_Hit_Check|Critical Check]]&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| [[FF7/DamageFormula#1:_Magical_Accuracy_Check|Magical Accuracy]]&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Dummy [3] (always hits)&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Dummy [4] (always hits)&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Dummy [5] (always hits)&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| [[FF7/DamageFormula#0:_Physical_Accuracy_Check|Physical Accuracy]], [[FF7/DamageFormula#2:_Critical_Hit_Check|Critical Check]]&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| [[FF7/DamageFormula#1:_Magical_Accuracy_Check|Magical Accuracy]]&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| [[FF7/DamageFormula#7:_Level-based_Accuracy|Level-based Accuracy]]&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| [[FF7/DamageFormula#6:_Manipulate_Accuracy_.28intended_solely_for_playable_characters.29|Manipulate]]&lt;br /&gt;
|-&lt;br /&gt;
| A&lt;br /&gt;
| [[FF7/DamageFormula#0:_Physical_Accuracy_Check|Physical Accuracy]], [[FF7/DamageFormula#2:_Critical_Hit_Check|Critical Check]]&lt;br /&gt;
|-&lt;br /&gt;
| B&lt;br /&gt;
| [[FF7/DamageFormula#0:_Physical_Accuracy_Check|Physical Accuracy]]&lt;br /&gt;
|-&lt;br /&gt;
| C&lt;br /&gt;
| None (always hits)&lt;br /&gt;
|-&lt;br /&gt;
| D&lt;br /&gt;
| None (always hits)&lt;br /&gt;
|-&lt;br /&gt;
| E&lt;br /&gt;
| None (always hits)&lt;br /&gt;
|-&lt;br /&gt;
| F&lt;br /&gt;
| None (always hits)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Damage Calculations=&lt;br /&gt;
These are the damage functions according to an unmodded FF7-ENG 1.02 (1998)&lt;br /&gt;
==Standard Formulae==&lt;br /&gt;
===X0:===&lt;br /&gt;
''0x5DE5C0''&lt;br /&gt;
&amp;lt;pre&amp;gt;Sets Target's 02h flag to 1. (Unknown effect)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X1:===&lt;br /&gt;
''0x5DE5DF''&lt;br /&gt;
&amp;lt;pre&amp;gt;If Attack Property &amp;quot;Always Critical&amp;quot; is Set&lt;br /&gt;
	Set Critical Damage Flag&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
x = ( Actor's Level * Actor's (M)Attack ) / 32&lt;br /&gt;
y = ( Actor's Level + Actor's (M)Attack ) / 32&lt;br /&gt;
z = Actor's (M)Attack + ( x * y )&lt;br /&gt;
z = z * ( 512 - target's defense ) * Attack's Power&lt;br /&gt;
Damage = z &amp;gt;&amp;gt; 13&lt;br /&gt;
//This is a bit-shift left by 13 which is mathematically equivalent to dividing by 8192, but it's important to note that it doesn't actually divide as this is the source of the damage overflow glitch&lt;br /&gt;
&lt;br /&gt;
If Critical Damage Flag is set&lt;br /&gt;
	Damage = Damage * 2&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If Actor's Statuses include Berserk&lt;br /&gt;
	Damage = Damage * 3 / 2&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
Long_Range = 0&lt;br /&gt;
If Target is in Back Row&lt;br /&gt;
	Set Long_Range = 1&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If Attack is Short Range OR Command is Enemy Attack&lt;br /&gt;
	If Actor is in Back Row&lt;br /&gt;
		Long_Range = 1&lt;br /&gt;
	End If&lt;br /&gt;
Else&lt;br /&gt;
	Long_Range = 0&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If Long_Range != 0&lt;br /&gt;
	Damage = Damage / 2&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If Target is Defending&lt;br /&gt;
	Damage = Damage / 2&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If Target's Back is exposed&lt;br /&gt;
	Damage = Damage * ( Target's Back Attack Modifier / 8 )&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If Actor's Statuses includes Frog&lt;br /&gt;
	Damage = Damage / 4&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
Damage = Sadness( Damage )&lt;br /&gt;
Damage = Split( Damage, 0 )&lt;br /&gt;
Damage = Barrier( Damage )&lt;br /&gt;
  &lt;br /&gt;
If Actor's Statuses include Mini&lt;br /&gt;
	Damage = 0&lt;br /&gt;
End If&lt;br /&gt;
Damage = Variance( Damage )&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X2:===&lt;br /&gt;
''0x5DE9B8''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
multiNoSplit = ( ( ( Attack's Target Flags AND Ch ) - 4 ) == 0 ? 1 : 0 )&lt;br /&gt;
Base = (Actor's Attack + Actor's Level) * 6&lt;br /&gt;
Damage = (512 - Target's Defense) * Base * Attack's Power / 8192&lt;br /&gt;
Damage = Sadness( Damage )&lt;br /&gt;
Damage = SplitDamage( Damage, multiNoSplit )&lt;br /&gt;
Damage = Barrier( Damage )&lt;br /&gt;
Damage = Variance( Damage )&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X3:===&lt;br /&gt;
''0x5DEA6D''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If Attack Properties Damage MP is clear&lt;br /&gt;
	Damage = Target's HP&lt;br /&gt;
Else&lt;br /&gt;
	Damage = Target's MP&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
Damage = Damage * Attack's Power / 32&lt;br /&gt;
&lt;br /&gt;
If ActionData[AC] != 0 (?)&lt;br /&gt;
	Damage = Damage / 2&lt;br /&gt;
End If&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X4:===&lt;br /&gt;
''0x5DEAF7''&lt;br /&gt;
&amp;lt;pre&amp;gt;If Attack Properties Damage MP is clear&lt;br /&gt;
	Damage = Target's MHP&lt;br /&gt;
Else&lt;br /&gt;
	Damage = Target's MMP&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
Damage = Damage * Attack's Power / 32&lt;br /&gt;
&lt;br /&gt;
If ActionData[AC] != 0 (?)&lt;br /&gt;
	Damage = Damage / 2&lt;br /&gt;
End If&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X5:===&lt;br /&gt;
''0x5DEB81''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Damage = (Actor's (M)Attack + Actor's Level) * 6 + (Attack's Power * 22)&lt;br /&gt;
Damage = SplitDamage( Damage )&lt;br /&gt;
Damage = Barrier( Damage )&lt;br /&gt;
Damage = Variance( Damage )&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X6:===&lt;br /&gt;
''0x5DEBE5''&lt;br /&gt;
&amp;lt;pre&amp;gt;Damage = Attack's Power * 20&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X7:===&lt;br /&gt;
''0x5DEC0A''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Damage = ( ( 512 - Target's Def ) * Attack's Power / 32 )&lt;br /&gt;
Damage = Variance( Damage )&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X8:===&lt;br /&gt;
''0x5DEC52''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If ActionData[0x230] AND 40h&lt;br /&gt;
	ActionData[0x230] = 1&lt;br /&gt;
Else&lt;br /&gt;
	ActionData[0x230] = 80h&lt;br /&gt;
End If&lt;br /&gt;
//presumably this checks if the target heals from restore element and will either recover or kill based on the result&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X9:===&lt;br /&gt;
''0x5DEC8A''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Actor's Attack = Actor's Strength * 2&lt;br /&gt;
Use Damage X1 with adjusted stat&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XA:===&lt;br /&gt;
''0x5DECAA''&lt;br /&gt;
&amp;lt;pre&amp;gt;Damage = ( Attack's Power + Number of Targets - 1 ) / Number of Targets&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Additional Checks==&lt;br /&gt;
===Sadness( Damage )===&lt;br /&gt;
''0x5DE958''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If Target's Status includes Sadness&lt;br /&gt;
	Damage = Damage - (Damage * 3 / 10)&lt;br /&gt;
End If&lt;br /&gt;
Return Damage&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SplitDamage( Damage, multiNoSplit )===&lt;br /&gt;
''0x5DE8F4''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If multiNoSplit == 0&lt;br /&gt;
	If No. of Attack's Targets &amp;gt;= 2&lt;br /&gt;
		Set Attack's split damage Target Flag&lt;br /&gt;
	Else&lt;br /&gt;
		Set multiNoSplit == 1&lt;br /&gt;
	End If&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If ActionData[0xAC] == 0&lt;br /&gt;
	Damage = Damage / 2&lt;br /&gt;
Else&lt;br /&gt;
	If multiNoSplit == 0&lt;br /&gt;
		Damage = Damage * 3 / 2&lt;br /&gt;
	End If&lt;br /&gt;
End If&lt;br /&gt;
Return Damage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Barrier( Damage )===&lt;br /&gt;
''0x5DE82C''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If Attack Property &amp;quot;Physical&amp;quot; is 0&lt;br /&gt;
	If Target's Statuses include MBarrier&lt;br /&gt;
		Set ActionData &amp;quot;MBarrier Active&amp;quot; flag&lt;br /&gt;
	End If&lt;br /&gt;
Else&lt;br /&gt;
	If Target's Statuses include Barrier&lt;br /&gt;
		Set ActionData &amp;quot;Barrier Active&amp;quot; flag&lt;br /&gt;
	End If&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If ActionData &amp;quot;MBarrier Active&amp;quot; or &amp;quot;Barrier Active&amp;quot; flags are set&lt;br /&gt;
	Damage = Damage / 2&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If attack is Magic and EnabledMagic[7] == 0 (?)&lt;br /&gt;
	Damage = Damage + ( Damage * ( EnabledMagic[7] * (10 / 32) ) / 100 )&lt;br /&gt;
End If&lt;br /&gt;
Return Damage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Variance( Damage ):===&lt;br /&gt;
''0x5DE988''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Damage = Damage ([0..255] + 3841) &amp;gt;&amp;gt; 12  //from RNGLUT in KERNEL.BIN&lt;br /&gt;
//Again, we have another chance for overflow.&lt;br /&gt;
&lt;br /&gt;
If Damage == 0&lt;br /&gt;
	Damage == 1&lt;br /&gt;
End If&lt;br /&gt;
Return Damage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Secondary Damage Formulae==&lt;br /&gt;
===X0:===&lt;br /&gt;
''0x5DECFB''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Damage = Attacker's HP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===X1:===&lt;br /&gt;
''5DED1E''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Damage = Attacker's MHP - Attacker's HP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===X8:===&lt;br /&gt;
''0x5DED73''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dice_Count = Attacker's Level / 10&lt;br /&gt;
&lt;br /&gt;
If Dice_Count &amp;lt; 2 then&lt;br /&gt;
	Dice_Count = 2&lt;br /&gt;
Elseif Dice_Count &amp;gt; 6&lt;br /&gt;
	Dice_Count = 6&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
total_dice_roll = 0&lt;br /&gt;
For ( d_loop = 0; d_loop &amp;lt; Dice_Count; d_loop++ )&lt;br /&gt;
	die = [0..5]&lt;br /&gt;
	all_dice[d_loop] = die&lt;br /&gt;
	total_dice_roll += die + 1&lt;br /&gt;
&lt;br /&gt;
	set die visualization based on roll&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
value_repeat = 0&lt;br /&gt;
For ( d_value = 0; d_value &amp;lt; 6; d_value++ )&lt;br /&gt;
&lt;br /&gt;
	repeat_count = 0&lt;br /&gt;
	For ( d_loop = 0; d_loop &amp;lt; Dice_Count; d_loop++ )&lt;br /&gt;
&lt;br /&gt;
		If all_dice[d_loop] = d_value then&lt;br /&gt;
			repeat_count++&lt;br /&gt;
		End If&lt;br /&gt;
	Loop&lt;br /&gt;
&lt;br /&gt;
	If repeat_count &amp;gt; value_repeat then&lt;br /&gt;
		value_repeat = repeat_count&lt;br /&gt;
	End If&lt;br /&gt;
&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
Damage = value_repeat * 100 * total_dice_roll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===X9===&lt;br /&gt;
''0x5DEEEF''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Damage = Number of Successful Escapes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===XA===&lt;br /&gt;
''0x5DEF1D''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Damage = Target's HP - 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===XB===&lt;br /&gt;
''0x5DEF44''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Damage = (Game Time Hours * 100) + (Game Time Minutes)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===XC===&lt;br /&gt;
''0x5DEF88''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Damage = Target's Kill Count * 10&lt;br /&gt;
//This is intended to be used only on players&lt;br /&gt;
//This will cause a memory leak if done on enemies&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===XD===&lt;br /&gt;
''0x5DEFDD''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If target is playable character&lt;br /&gt;
	MateriaCount = 0;&lt;br /&gt;
	For ( MateriaLoop = 0; MateriaLoop &amp;lt; 8; MateriaLoop++ )&lt;br /&gt;
		If target has materia in weapon slot [MateriaLoop] then MateriaCount++&lt;br /&gt;
		If target has materia in armor slot [MateriaLoop] then MateriaCount++&lt;br /&gt;
	Loop&lt;br /&gt;
	Damage = MateriaCount * 1111&lt;br /&gt;
End If&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Accuracy Functions=&lt;br /&gt;
The point of these is to set the &amp;quot;attack will miss&amp;quot; flag in the current action memory structure.&lt;br /&gt;
&lt;br /&gt;
===0: Physical Accuracy Check===&lt;br /&gt;
''0x5DDBB0''&lt;br /&gt;
&amp;lt;pre&amp;gt;;For the purposes of this code, &amp;quot;Dex&amp;quot; means the adjusted Dexterity of the actor/target if any in-battle dex bonuses have been granted.&lt;br /&gt;
;Same holds for the Physical Evade. Physical Hit rate has no in-game bonus opportunities.&lt;br /&gt;
&lt;br /&gt;
Check_For_Cover()&lt;br /&gt;
&lt;br /&gt;
HitChance = -1;&lt;br /&gt;
&lt;br /&gt;
If &amp;quot;Always connect&amp;quot; flag set then HitChance = 255;&lt;br /&gt;
&lt;br /&gt;
If target has one of the following statuses (Death, Sleep, Confu, Stop, Petrify, Manipulate, Paralysis) then&lt;br /&gt;
	Remove Sleep status&lt;br /&gt;
	Remove Confu status&lt;br /&gt;
	Remove Manipulate status&lt;br /&gt;
	HitChance = 255&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If action is flagged as &amp;quot;always hit&amp;quot; then HitChance = 255;&lt;br /&gt;
&lt;br /&gt;
Physical Chance = (Actor's Dex &amp;gt;&amp;gt; 2) + action physical hit rate&lt;br /&gt;
If Actor is enemy then&lt;br /&gt;
	Actor's evade = Actor's Physical evade&lt;br /&gt;
else&lt;br /&gt;
	Actor's evade = (Actor's Dex &amp;gt;&amp;gt; 2) + Actor's Physical evade&lt;br /&gt;
End If&lt;br /&gt;
If Target is enemy then&lt;br /&gt;
	Target's evade = Target's Physical evade&lt;br /&gt;
Else&lt;br /&gt;
	Target's evade = (Target's Dex &amp;gt;&amp;gt; 2) + Target's Physical evade&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If HitChance = -1 Then&lt;br /&gt;
	HitChance = Physical Chance + Actor's evade - Target's evade&lt;br /&gt;
	HitChance = FuryAdjust(HitChance)&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If HitChance = 0 then HitChance = 1&lt;br /&gt;
&lt;br /&gt;
Luck Chance = [0..99]&lt;br /&gt;
If (Actor's Luck / 4) &amp;gt; Luck Chance Then&lt;br /&gt;
	HitChance = 255 ;Lucky Hit&lt;br /&gt;
Else&lt;br /&gt;
	If Actor is Player Character targetting an enemy Then&lt;br /&gt;
		If (Target's Luck / 4) &amp;gt; Luck Chance&lt;br /&gt;
			HitChance = 0 ;Lucky Dodge&lt;br /&gt;
		End If&lt;br /&gt;
	End If&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
Miss Chance = (([0..65535] * 99) / 65535) + 1 ;essentially [1..100]&lt;br /&gt;
if HitChance &amp;lt; Miss Chance then&lt;br /&gt;
	Set Miss flag&lt;br /&gt;
End If&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Check_For_Cover====&lt;br /&gt;
	This is where the game checks if the target is covered under a &amp;quot;cover&amp;quot;ing ally.&lt;br /&gt;
	It only applies to Player Characters&lt;br /&gt;
	It might be more complicated than I'm seeing, but that is definitely ONE of its functions&lt;br /&gt;
&lt;br /&gt;
====FuryAdjust(HitChance)====&lt;br /&gt;
&amp;lt;pre&amp;gt;	If HitChance &amp;lt; 255 then &lt;br /&gt;
		If Actor is in Fury Status&lt;br /&gt;
			HitChance = HitChance - ((HitChance * 3) / 10)&lt;br /&gt;
		End If&lt;br /&gt;
	End If&lt;br /&gt;
	return HitChance &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===1: Magical Accuracy Check===&lt;br /&gt;
''0x5DDE5E''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acc = Action's Accuracy&lt;br /&gt;
tar_save = level / 2; //rounded down&lt;br /&gt;
acc_bonus = actor's level - tar_save&lt;br /&gt;
rand_0 = [0..99]&lt;br /&gt;
rand_1 = [0..99]&lt;br /&gt;
if acc &amp;lt; 255 then&lt;br /&gt;
   if target does not have instant-death, null, or heal properties to current attack then&lt;br /&gt;
      if attack is not (reflectable and target in reflect status) then&lt;br /&gt;
         if attack does not inflict statuses or inflicting status include: Death, Sleep, Confu, Stop, Petrify, or Paralysis then&lt;br /&gt;
            acc = Fury_Adj( acc );&lt;br /&gt;
            if target's M_Evade &amp;gt; rand_0 OR&lt;br /&gt;
                acc + acc_bonus &amp;lt; rand_1 then&lt;br /&gt;
               Set action miss flag&lt;br /&gt;
            end if&lt;br /&gt;
         end if&lt;br /&gt;
      end if&lt;br /&gt;
   end if&lt;br /&gt;
end if&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===2: Critical Hit Check===&lt;br /&gt;
''0x5DDF8E''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If attack does not miss then&lt;br /&gt;
   if actor in lucky girl status then&lt;br /&gt;
      critical_chance = 255&lt;br /&gt;
   else&lt;br /&gt;
      critical_chance = ((actor's luck + actor's level) - target's level ) &amp;gt;&amp;gt; 2;&lt;br /&gt;
      if actor is playable character then&lt;br /&gt;
         critical_chance += weapon's critical bonus //?&lt;br /&gt;
      end if&lt;br /&gt;
      Critical_random = ( ( [0..65535] * 99 ) / 65535 ) + 1;&lt;br /&gt;
      if critical_chance &amp;gt; critical_random then&lt;br /&gt;
         attack set to critical&lt;br /&gt;
      end if&lt;br /&gt;
   end if&lt;br /&gt;
end if&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3, 4, and 5 don't exist. Since they don't set miss they will always hit.&lt;br /&gt;
&lt;br /&gt;
===6: Manipulate Accuracy (intended solely for playable characters)===&lt;br /&gt;
''0x5DE0D0''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int ally_loop;&lt;br /&gt;
ManipSuccess = 0;&lt;br /&gt;
for ( ally_loop = 0; ally_loop &amp;lt; 3; ally_loop++ )&lt;br /&gt;
{&lt;br /&gt;
   if target is currently under manipulation by an actor then&lt;br /&gt;
      break;&lt;br /&gt;
   end if&lt;br /&gt;
}&lt;br /&gt;
if target is not currently being manipulated AND&lt;br /&gt;
    target is not a playable character AND&lt;br /&gt;
    target is an enemy AND&lt;br /&gt;
    actor is not currently manipulating an enemy AND&lt;br /&gt;
    target is not under manipulate status AND&lt;br /&gt;
    target's timer bar is running AND //like they're not stopped, petrified, etc&lt;br /&gt;
    target's attack resistance is &amp;quot;always-hit&amp;quot; then //?&lt;br /&gt;
   Manip_Chance = actor's level + 50 - target's level; //no less than 0&lt;br /&gt;
   if target count &amp;gt; 1 then&lt;br /&gt;
      Manip_Chance = ( Manip_Chance &amp;lt;&amp;lt; 2 ) / 5;&lt;br /&gt;
   end if&lt;br /&gt;
   if actor's [0xAC] == 0 then&lt;br /&gt;
      Manip_Chance &amp;gt;&amp;gt; 1;&lt;br /&gt;
   end if&lt;br /&gt;
   if target's attack resistance is &amp;quot;always-hit&amp;quot; then&lt;br /&gt;
      Manip_Chance = 255;&lt;br /&gt;
   end if&lt;br /&gt;
   if actor's accessory property == 5 //&amp;quot;Increase manip rate&amp;quot; property on Hypnocrown&lt;br /&gt;
      if Manip_Chance &amp;lt; 100 then&lt;br /&gt;
         Manip_Chance = 100;&lt;br /&gt;
      end if&lt;br /&gt;
   end if&lt;br /&gt;
   If Manip_Chance &amp;gt; [0..99] then&lt;br /&gt;
      ManipSuccess = 1;&lt;br /&gt;
   end if&lt;br /&gt;
end if&lt;br /&gt;
If ManipSuccess == 1 then&lt;br /&gt;
   Set actor's manipulated enemy to target&lt;br /&gt;
   Display String 5Ah {&amp;quot;Manipulated &amp;lt;Enemy&amp;gt;&amp;quot;}&lt;br /&gt;
   Clear Actor's 0xE4 value //unknown&lt;br /&gt;
else&lt;br /&gt;
   Set attack missed&lt;br /&gt;
end if&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This doesn't actually place the target in the manipulate status. That happens elsewhere.&lt;br /&gt;
&lt;br /&gt;
===7: Level-based Accuracy===&lt;br /&gt;
''0x5DE08A''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If Action's Accuracy &amp;gt; 0 then&lt;br /&gt;
   If the remainder of ( Target's level / Action accuracy ) is non-zero then&lt;br /&gt;
      Set attack missed&lt;br /&gt;
   end if&lt;br /&gt;
end if&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So if the accuracy IS 0, then it will always hit. This is to prevent a divide by zero error.&lt;/div&gt;</summary>
		<author><name>NFITC1</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.ffrtt.ru/index.php?title=FF7/DamageFormula&amp;diff=5885</id>
		<title>FF7/DamageFormula</title>
		<link rel="alternate" type="text/html" href="https://wiki.ffrtt.ru/index.php?title=FF7/DamageFormula&amp;diff=5885"/>
		<updated>2021-05-17T17:00:23Z</updated>

		<summary type="html">&lt;p&gt;NFITC1: /* 0: Physical Accuracy Check */ I can't decide on a layout, but this is slightly more organized and understandable&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Accuracy Function considerations==&lt;br /&gt;
Each of the upper nybble of the damage calculation determines what checks are done to accuracy of the action and whether or not it will connect, be critical or miss. Here are the functions in order processed based on the upper nybble:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Upper Nybble&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Functions&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| None (always hits)&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| [[FF7/DamageFormula#0:_Physical_Accuracy_Check|Physical Accuracy]], [[FF7/DamageFormula#2:_Critical_Hit_Check|Critical Check]]&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| [[FF7/DamageFormula#1:_Magical_Accuracy_Check|Magical Accuracy]]&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Dummy [3] (always hits)&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Dummy [4] (always hits)&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Dummy [5] (always hits)&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| [[FF7/DamageFormula#0:_Physical_Accuracy_Check|Physical Accuracy]], [[FF7/DamageFormula#2:_Critical_Hit_Check|Critical Check]]&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| [[FF7/DamageFormula#1:_Magical_Accuracy_Check|Magical Accuracy]]&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| [[FF7/DamageFormula#7:_Level-based_Accuracy|Level-based Accuracy]]&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| [[FF7/DamageFormula#6:_Manipulate_Accuracy_.28intended_solely_for_playable_characters.29|Manipulate]]&lt;br /&gt;
|-&lt;br /&gt;
| A&lt;br /&gt;
| [[FF7/DamageFormula#0:_Physical_Accuracy_Check|Physical Accuracy]], [[FF7/DamageFormula#2:_Critical_Hit_Check|Critical Check]]&lt;br /&gt;
|-&lt;br /&gt;
| B&lt;br /&gt;
| [[FF7/DamageFormula#0:_Physical_Accuracy_Check|Physical Accuracy]]&lt;br /&gt;
|-&lt;br /&gt;
| C&lt;br /&gt;
| None (always hits)&lt;br /&gt;
|-&lt;br /&gt;
| D&lt;br /&gt;
| None (always hits)&lt;br /&gt;
|-&lt;br /&gt;
| E&lt;br /&gt;
| None (always hits)&lt;br /&gt;
|-&lt;br /&gt;
| F&lt;br /&gt;
| None (always hits)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Damage Calculations=&lt;br /&gt;
These are the damage functions according to an unmodded FF7-ENG 1.02 (1998)&lt;br /&gt;
==Standard Formulae==&lt;br /&gt;
===X0:===&lt;br /&gt;
''0x5DE5C0''&lt;br /&gt;
&amp;lt;pre&amp;gt;Sets Target's 02h flag to 1. (Unknown effect)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X1:===&lt;br /&gt;
''0x5DE5DF''&lt;br /&gt;
&amp;lt;pre&amp;gt;If Attack Property &amp;quot;Always Critical&amp;quot; is Set&lt;br /&gt;
	Set Critical Damage Flag&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
x = ( Actor's Level * Actor's (M)Attack ) / 32&lt;br /&gt;
y = ( Actor's Level + Actor's (M)Attack ) / 32&lt;br /&gt;
z = Actor's (M)Attack + ( x * y )&lt;br /&gt;
z = z * ( 512 - target's defense ) * Attack's Power&lt;br /&gt;
Damage = z &amp;gt;&amp;gt; 13&lt;br /&gt;
//This is a bit-shift left by 13 which is mathematically equivalent to dividing by 8192, but it's important to note that it doesn't actually divide as this is the source of the damage overflow glitch&lt;br /&gt;
&lt;br /&gt;
If Critical Damage Flag is set&lt;br /&gt;
	Damage = Damage * 2&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If Actor's Statuses include Berserk&lt;br /&gt;
	Damage = Damage * 3 / 2&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
Long_Range = 0&lt;br /&gt;
If Target is in Back Row&lt;br /&gt;
	Set Long_Range = 1&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If Attack is Short Range OR Command is Enemy Attack&lt;br /&gt;
	If Actor is in Back Row&lt;br /&gt;
		Long_Range = 1&lt;br /&gt;
	End If&lt;br /&gt;
Else&lt;br /&gt;
	Long_Range = 0&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If Long_Range != 0&lt;br /&gt;
	Damage = Damage / 2&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If Target is Defending&lt;br /&gt;
	Damage = Damage / 2&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If Target's Back is exposed&lt;br /&gt;
	Damage = Damage * ( Target's Back Attack Modifier / 8 )&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If Actor's Statuses includes Frog&lt;br /&gt;
	Damage = Damage / 4&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
Damage = Sadness( Damage )&lt;br /&gt;
Damage = Split( Damage, 0 )&lt;br /&gt;
Damage = Barrier( Damage )&lt;br /&gt;
  &lt;br /&gt;
If Actor's Statuses include Mini&lt;br /&gt;
	Damage = 0&lt;br /&gt;
End If&lt;br /&gt;
Damage = Variance( Damage )&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X2:===&lt;br /&gt;
''0x5DE9B8''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
multiNoSplit = ( ( ( Attack's Target Flags AND Ch ) - 4 ) == 0 ? 1 : 0 )&lt;br /&gt;
Base = (Actor's Attack + Actor's Level) * 6&lt;br /&gt;
Damage = (512 - Target's Defense) * Base * Attack's Power / 8192&lt;br /&gt;
Damage = Sadness( Damage )&lt;br /&gt;
Damage = SplitDamage( Damage, multiNoSplit )&lt;br /&gt;
Damage = Barrier( Damage )&lt;br /&gt;
Damage = Variance( Damage )&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X3:===&lt;br /&gt;
''0x5DEA6D''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If Attack Properties Damage MP is clear&lt;br /&gt;
	Damage = Target's HP&lt;br /&gt;
Else&lt;br /&gt;
	Damage = Target's MP&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
Damage = Damage * Attack's Power / 32&lt;br /&gt;
&lt;br /&gt;
If ActionData[AC] != 0 (?)&lt;br /&gt;
	Damage = Damage / 2&lt;br /&gt;
End If&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X4:===&lt;br /&gt;
''0x5DEAF7''&lt;br /&gt;
&amp;lt;pre&amp;gt;If Attack Properties Damage MP is clear&lt;br /&gt;
	Damage = Target's MHP&lt;br /&gt;
Else&lt;br /&gt;
	Damage = Target's MMP&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
Damage = Damage * Attack's Power / 32&lt;br /&gt;
&lt;br /&gt;
If ActionData[AC] != 0 (?)&lt;br /&gt;
	Damage = Damage / 2&lt;br /&gt;
End If&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X5:===&lt;br /&gt;
''0x5DEB81''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Damage = (Actor's (M)Attack + Actor's Level) * 6 + (Attack's Power * 22)&lt;br /&gt;
Damage = SplitDamage( Damage )&lt;br /&gt;
Damage = Barrier( Damage )&lt;br /&gt;
Damage = Variance( Damage )&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X6:===&lt;br /&gt;
''0x5DEBE5''&lt;br /&gt;
&amp;lt;pre&amp;gt;Damage = Attack's Power * 20&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X7:===&lt;br /&gt;
''0x5DEC0A''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Damage = ( ( 512 - Target's Def ) * Attack's Power / 32 )&lt;br /&gt;
Damage = Variance( Damage )&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X8:===&lt;br /&gt;
''0x5DEC52''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If ActionData[0x230] AND 40h&lt;br /&gt;
	ActionData[0x230] = 1&lt;br /&gt;
Else&lt;br /&gt;
	ActionData[0x230] = 80h&lt;br /&gt;
End If&lt;br /&gt;
//presumably this checks if the target heals from restore element and will either recover or kill based on the result&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X9:===&lt;br /&gt;
''0x5DEC8A''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Actor's Attack = Actor's Strength * 2&lt;br /&gt;
Use Damage X1 with adjusted stat&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XA:===&lt;br /&gt;
''0x5DECAA''&lt;br /&gt;
&amp;lt;pre&amp;gt;Damage = ( Attack's Power + Number of Targets - 1 ) / Number of Targets&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Additional Checks==&lt;br /&gt;
===Sadness( Damage )===&lt;br /&gt;
''0x5DE958''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If Target's Status includes Sadness&lt;br /&gt;
	Damage = Damage - (Damage * 3 / 10)&lt;br /&gt;
End If&lt;br /&gt;
Return Damage&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SplitDamage( Damage, multiNoSplit )===&lt;br /&gt;
''0x5DE8F4''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If multiNoSplit == 0&lt;br /&gt;
	If No. of Attack's Targets &amp;gt;= 2&lt;br /&gt;
		Set Attack's split damage Target Flag&lt;br /&gt;
	Else&lt;br /&gt;
		Set multiNoSplit == 1&lt;br /&gt;
	End If&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If ActionData[0xAC] == 0&lt;br /&gt;
	Damage = Damage / 2&lt;br /&gt;
Else&lt;br /&gt;
	If multiNoSplit == 0&lt;br /&gt;
		Damage = Damage * 3 / 2&lt;br /&gt;
	End If&lt;br /&gt;
End If&lt;br /&gt;
Return Damage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Barrier( Damage )===&lt;br /&gt;
''0x5DE82C''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If Attack Property &amp;quot;Physical&amp;quot; is 0&lt;br /&gt;
	If Target's Statuses include MBarrier&lt;br /&gt;
		Set ActionData &amp;quot;MBarrier Active&amp;quot; flag&lt;br /&gt;
	End If&lt;br /&gt;
Else&lt;br /&gt;
	If Target's Statuses include Barrier&lt;br /&gt;
		Set ActionData &amp;quot;Barrier Active&amp;quot; flag&lt;br /&gt;
	End If&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If ActionData &amp;quot;MBarrier Active&amp;quot; or &amp;quot;Barrier Active&amp;quot; flags are set&lt;br /&gt;
	Damage = Damage / 2&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If attack is Magic and EnabledMagic[7] == 0 (?)&lt;br /&gt;
	Damage = Damage + ( Damage * ( EnabledMagic[7] * (10 / 32) ) / 100 )&lt;br /&gt;
End If&lt;br /&gt;
Return Damage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Variance( Damage ):===&lt;br /&gt;
''0x5DE988''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Damage = Damage ([0..255] + 3841) &amp;gt;&amp;gt; 12  //from RNGLUT in KERNEL.BIN&lt;br /&gt;
//Again, we have another chance for overflow.&lt;br /&gt;
&lt;br /&gt;
If Damage == 0&lt;br /&gt;
	Damage == 1&lt;br /&gt;
End If&lt;br /&gt;
Return Damage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Secondary Damage Formulae==&lt;br /&gt;
===X0:===&lt;br /&gt;
''0x5DECFB''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Damage = Attacker's HP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===X1:===&lt;br /&gt;
''5DED1E''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Damage = Attacker's MHP - Attacker's HP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===X8:===&lt;br /&gt;
''0x5DED73''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dice_Count = Attacker's Level / 10&lt;br /&gt;
&lt;br /&gt;
If Dice_Count &amp;lt; 2 then&lt;br /&gt;
	Dice_Count = 2&lt;br /&gt;
Elseif Dice_Count &amp;gt; 6&lt;br /&gt;
	Dice_Count = 6&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
total_dice_roll = 0&lt;br /&gt;
For ( d_loop = 0; d_loop &amp;lt; Dice_Count; d_loop++ )&lt;br /&gt;
	die = [0..5]&lt;br /&gt;
	all_dice[d_loop] = die&lt;br /&gt;
	total_dice_roll += die + 1&lt;br /&gt;
&lt;br /&gt;
	set die visualization based on roll&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
value_repeat = 0&lt;br /&gt;
For ( d_value = 0; d_value &amp;lt; 6; d_value++ )&lt;br /&gt;
&lt;br /&gt;
	repeat_count = 0&lt;br /&gt;
	For ( d_loop = 0; d_loop &amp;lt; Dice_Count; d_loop++ )&lt;br /&gt;
&lt;br /&gt;
		If all_dice[d_loop] = d_value then&lt;br /&gt;
			repeat_count++&lt;br /&gt;
		End If&lt;br /&gt;
	Loop&lt;br /&gt;
&lt;br /&gt;
	If repeat_count &amp;gt; value_repeat then&lt;br /&gt;
		value_repeat = repeat_count&lt;br /&gt;
	End If&lt;br /&gt;
&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
Damage = value_repeat * 100 * total_dice_roll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===X9===&lt;br /&gt;
''0x5DEEEF''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Damage = Number of Successful Escapes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===XA===&lt;br /&gt;
''0x5DEF1D''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Damage = Target's HP - 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===XB===&lt;br /&gt;
''0x5DEF44''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Damage = (Game Time Hours * 100) + (Game Time Minutes)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===XC===&lt;br /&gt;
''0x5DEF88''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Damage = Target's Kill Count * 10&lt;br /&gt;
//This is intended to be used only on players&lt;br /&gt;
//This will cause a memory leak if done on enemies&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===XD===&lt;br /&gt;
''0x5DEFDD''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If target is playable character&lt;br /&gt;
	MateriaCount = 0;&lt;br /&gt;
	For ( MateriaLoop = 0; MateriaLoop &amp;lt; 8; MateriaLoop++ )&lt;br /&gt;
		If target has materia in weapon slot [MateriaLoop] then MateriaCount++&lt;br /&gt;
		If target has materia in armor slot [MateriaLoop] then MateriaCount++&lt;br /&gt;
	Loop&lt;br /&gt;
	Damage = MateriaCount * 1111&lt;br /&gt;
End If&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Accuracy Functions=&lt;br /&gt;
The point of these is to set the &amp;quot;attack will miss&amp;quot; flag in the current action memory structure.&lt;br /&gt;
&lt;br /&gt;
===0: Physical Accuracy Check===&lt;br /&gt;
''0x5DDBB0''&lt;br /&gt;
&amp;lt;pre&amp;gt;;For the purposes of this code, &amp;quot;Dex&amp;quot; means the adjusted Dexterity of the actor/target if any in-battle dex bonuses have been granted.&lt;br /&gt;
;Same holds for the Physical Evade. Physical Hit rate has no in-game bonus opportunities.&lt;br /&gt;
&lt;br /&gt;
Check_For_Cover()&lt;br /&gt;
&lt;br /&gt;
HitChance = -1;&lt;br /&gt;
&lt;br /&gt;
If &amp;quot;Always connect&amp;quot; flag set then HitChance = 255;&lt;br /&gt;
&lt;br /&gt;
If target has one of the following statuses (Death, Sleep, Confu, Stop, Petrify, Manipulate, Paralysis) then&lt;br /&gt;
	Remove Sleep status&lt;br /&gt;
	Remove Confu status&lt;br /&gt;
	Remove Manipulate status&lt;br /&gt;
	HitChance = 255&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If action is flagged as &amp;quot;always hit&amp;quot; then HitChance = 255;&lt;br /&gt;
&lt;br /&gt;
Physical Chance = (Actor's Dex &amp;gt;&amp;gt; 2) + action physical hit rate&lt;br /&gt;
Actor's evade = (Actor's Dex &amp;gt;&amp;gt; 2) + Actor's Physical evade&lt;br /&gt;
Target's evade = (Target's Dex &amp;gt;&amp;gt; 2) + Target's Physical evade&lt;br /&gt;
&lt;br /&gt;
If HitChance = -1 Then&lt;br /&gt;
	HitChance = Physical Chance + Actor's evade - Target's evade&lt;br /&gt;
	HitChance = FuryAdjust(HitChance)&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If HitChance = 0 then HitChance = 1&lt;br /&gt;
&lt;br /&gt;
Luck Chance = [0..99]&lt;br /&gt;
If (Actor's Luck / 4) &amp;gt; Luck Chance Then&lt;br /&gt;
	HitChance = 255 ;Lucky Hit&lt;br /&gt;
Else&lt;br /&gt;
	If Actor is Player Character targetting an enemy Then&lt;br /&gt;
		If (Target's Luck / 4) &amp;gt; Luck Chance&lt;br /&gt;
			HitChance = 0 ;Lucky Dodge&lt;br /&gt;
		End If&lt;br /&gt;
	End If&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
Miss Chance = (([0..65535] * 99) / 65535) + 1 ;essentially [1..100]&lt;br /&gt;
if HitChance &amp;lt; Miss Chance then&lt;br /&gt;
	Set Miss flag&lt;br /&gt;
End If&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Check_For_Cover====&lt;br /&gt;
	This is where the game checks if the target is covered under a &amp;quot;cover&amp;quot;ing ally.&lt;br /&gt;
	It only applies to Player Characters&lt;br /&gt;
	It might be more complicated than I'm seeing, but that is definitely ONE of its functions&lt;br /&gt;
&lt;br /&gt;
====FuryAdjust(HitChance)====&lt;br /&gt;
&amp;lt;pre&amp;gt;	If HitChance &amp;lt; 255 then &lt;br /&gt;
		If Actor is in Fury Status&lt;br /&gt;
			HitChance = HitChance - ((HitChance * 3) / 10)&lt;br /&gt;
		End If&lt;br /&gt;
	End If&lt;br /&gt;
	return HitChance &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===1: Magical Accuracy Check===&lt;br /&gt;
''0x5DDE5E''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acc = Action's Accuracy&lt;br /&gt;
tar_save = level / 2; //rounded down&lt;br /&gt;
acc_bonus = actor's level - tar_save&lt;br /&gt;
rand_0 = [0..99]&lt;br /&gt;
rand_1 = [0..99]&lt;br /&gt;
if acc &amp;lt; 255 then&lt;br /&gt;
   if target does not have instant-death, null, or heal properties to current attack then&lt;br /&gt;
      if attack is not (reflectable and target in reflect status) then&lt;br /&gt;
         if attack does not inflict statuses or inflicting status include: Death, Sleep, Confu, Stop, Petrify, or Paralysis then&lt;br /&gt;
            acc = Fury_Adj( acc );&lt;br /&gt;
            if target's M_Evade &amp;gt; rand_0 OR&lt;br /&gt;
                acc + acc_bonus &amp;lt; rand_1 then&lt;br /&gt;
               Set action miss flag&lt;br /&gt;
            end if&lt;br /&gt;
         end if&lt;br /&gt;
      end if&lt;br /&gt;
   end if&lt;br /&gt;
end if&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===2: Critical Hit Check===&lt;br /&gt;
''0x5DDF8E''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If attack does not miss then&lt;br /&gt;
   if actor in lucky girl status then&lt;br /&gt;
      critical_chance = 255&lt;br /&gt;
   else&lt;br /&gt;
      critical_chance = ((actor's luck + actor's level) - target's level ) &amp;gt;&amp;gt; 2;&lt;br /&gt;
      if actor is playable character then&lt;br /&gt;
         critical_chance += weapon's critical bonus //?&lt;br /&gt;
      end if&lt;br /&gt;
      Critical_random = ( ( [0..65535] * 99 ) / 65535 ) + 1;&lt;br /&gt;
      if critical_chance &amp;gt; critical_random then&lt;br /&gt;
         attack set to critical&lt;br /&gt;
      end if&lt;br /&gt;
   end if&lt;br /&gt;
end if&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3, 4, and 5 don't exist. Since they don't set miss they will always hit.&lt;br /&gt;
&lt;br /&gt;
===6: Manipulate Accuracy (intended solely for playable characters)===&lt;br /&gt;
''0x5DE0D0''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int ally_loop;&lt;br /&gt;
ManipSuccess = 0;&lt;br /&gt;
for ( ally_loop = 0; ally_loop &amp;lt; 3; ally_loop++ )&lt;br /&gt;
{&lt;br /&gt;
   if target is currently under manipulation by an actor then&lt;br /&gt;
      break;&lt;br /&gt;
   end if&lt;br /&gt;
}&lt;br /&gt;
if target is not currently being manipulated AND&lt;br /&gt;
    target is not a playable character AND&lt;br /&gt;
    target is an enemy AND&lt;br /&gt;
    actor is not currently manipulating an enemy AND&lt;br /&gt;
    target is not under manipulate status AND&lt;br /&gt;
    target's timer bar is running AND //like they're not stopped, petrified, etc&lt;br /&gt;
    target's attack resistance is &amp;quot;always-hit&amp;quot; then //?&lt;br /&gt;
   Manip_Chance = actor's level + 50 - target's level; //no less than 0&lt;br /&gt;
   if target count &amp;gt; 1 then&lt;br /&gt;
      Manip_Chance = ( Manip_Chance &amp;lt;&amp;lt; 2 ) / 5;&lt;br /&gt;
   end if&lt;br /&gt;
   if actor's [0xAC] == 0 then&lt;br /&gt;
      Manip_Chance &amp;gt;&amp;gt; 1;&lt;br /&gt;
   end if&lt;br /&gt;
   if target's attack resistance is &amp;quot;always-hit&amp;quot; then&lt;br /&gt;
      Manip_Chance = 255;&lt;br /&gt;
   end if&lt;br /&gt;
   if actor's accessory property == 5 //&amp;quot;Increase manip rate&amp;quot; property on Hypnocrown&lt;br /&gt;
      if Manip_Chance &amp;lt; 100 then&lt;br /&gt;
         Manip_Chance = 100;&lt;br /&gt;
      end if&lt;br /&gt;
   end if&lt;br /&gt;
   If Manip_Chance &amp;gt; [0..99] then&lt;br /&gt;
      ManipSuccess = 1;&lt;br /&gt;
   end if&lt;br /&gt;
end if&lt;br /&gt;
If ManipSuccess == 1 then&lt;br /&gt;
   Set actor's manipulated enemy to target&lt;br /&gt;
   Display String 5Ah {&amp;quot;Manipulated &amp;lt;Enemy&amp;gt;&amp;quot;}&lt;br /&gt;
   Clear Actor's 0xE4 value //unknown&lt;br /&gt;
else&lt;br /&gt;
   Set attack missed&lt;br /&gt;
end if&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This doesn't actually place the target in the manipulate status. That happens elsewhere.&lt;br /&gt;
&lt;br /&gt;
===7: Level-based Accuracy===&lt;br /&gt;
''0x5DE08A''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If Action's Accuracy &amp;gt; 0 then&lt;br /&gt;
   If the remainder of ( Target's level / Action accuracy ) is non-zero then&lt;br /&gt;
      Set attack missed&lt;br /&gt;
   end if&lt;br /&gt;
end if&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So if the accuracy IS 0, then it will always hit. This is to prevent a divide by zero error.&lt;/div&gt;</summary>
		<author><name>NFITC1</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.ffrtt.ru/index.php?title=FF7/DamageFormula&amp;diff=5884</id>
		<title>FF7/DamageFormula</title>
		<link rel="alternate" type="text/html" href="https://wiki.ffrtt.ru/index.php?title=FF7/DamageFormula&amp;diff=5884"/>
		<updated>2021-05-17T16:57:10Z</updated>

		<summary type="html">&lt;p&gt;NFITC1: /* 0: Physical Accuracy Check */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Accuracy Function considerations==&lt;br /&gt;
Each of the upper nybble of the damage calculation determines what checks are done to accuracy of the action and whether or not it will connect, be critical or miss. Here are the functions in order processed based on the upper nybble:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Upper Nybble&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Functions&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| None (always hits)&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| [[FF7/DamageFormula#0:_Physical_Accuracy_Check|Physical Accuracy]], [[FF7/DamageFormula#2:_Critical_Hit_Check|Critical Check]]&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| [[FF7/DamageFormula#1:_Magical_Accuracy_Check|Magical Accuracy]]&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Dummy [3] (always hits)&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Dummy [4] (always hits)&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Dummy [5] (always hits)&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| [[FF7/DamageFormula#0:_Physical_Accuracy_Check|Physical Accuracy]], [[FF7/DamageFormula#2:_Critical_Hit_Check|Critical Check]]&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| [[FF7/DamageFormula#1:_Magical_Accuracy_Check|Magical Accuracy]]&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| [[FF7/DamageFormula#7:_Level-based_Accuracy|Level-based Accuracy]]&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| [[FF7/DamageFormula#6:_Manipulate_Accuracy_.28intended_solely_for_playable_characters.29|Manipulate]]&lt;br /&gt;
|-&lt;br /&gt;
| A&lt;br /&gt;
| [[FF7/DamageFormula#0:_Physical_Accuracy_Check|Physical Accuracy]], [[FF7/DamageFormula#2:_Critical_Hit_Check|Critical Check]]&lt;br /&gt;
|-&lt;br /&gt;
| B&lt;br /&gt;
| [[FF7/DamageFormula#0:_Physical_Accuracy_Check|Physical Accuracy]]&lt;br /&gt;
|-&lt;br /&gt;
| C&lt;br /&gt;
| None (always hits)&lt;br /&gt;
|-&lt;br /&gt;
| D&lt;br /&gt;
| None (always hits)&lt;br /&gt;
|-&lt;br /&gt;
| E&lt;br /&gt;
| None (always hits)&lt;br /&gt;
|-&lt;br /&gt;
| F&lt;br /&gt;
| None (always hits)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Damage Calculations=&lt;br /&gt;
These are the damage functions according to an unmodded FF7-ENG 1.02 (1998)&lt;br /&gt;
==Standard Formulae==&lt;br /&gt;
===X0:===&lt;br /&gt;
''0x5DE5C0''&lt;br /&gt;
&amp;lt;pre&amp;gt;Sets Target's 02h flag to 1. (Unknown effect)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X1:===&lt;br /&gt;
''0x5DE5DF''&lt;br /&gt;
&amp;lt;pre&amp;gt;If Attack Property &amp;quot;Always Critical&amp;quot; is Set&lt;br /&gt;
	Set Critical Damage Flag&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
x = ( Actor's Level * Actor's (M)Attack ) / 32&lt;br /&gt;
y = ( Actor's Level + Actor's (M)Attack ) / 32&lt;br /&gt;
z = Actor's (M)Attack + ( x * y )&lt;br /&gt;
z = z * ( 512 - target's defense ) * Attack's Power&lt;br /&gt;
Damage = z &amp;gt;&amp;gt; 13&lt;br /&gt;
//This is a bit-shift left by 13 which is mathematically equivalent to dividing by 8192, but it's important to note that it doesn't actually divide as this is the source of the damage overflow glitch&lt;br /&gt;
&lt;br /&gt;
If Critical Damage Flag is set&lt;br /&gt;
	Damage = Damage * 2&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If Actor's Statuses include Berserk&lt;br /&gt;
	Damage = Damage * 3 / 2&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
Long_Range = 0&lt;br /&gt;
If Target is in Back Row&lt;br /&gt;
	Set Long_Range = 1&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If Attack is Short Range OR Command is Enemy Attack&lt;br /&gt;
	If Actor is in Back Row&lt;br /&gt;
		Long_Range = 1&lt;br /&gt;
	End If&lt;br /&gt;
Else&lt;br /&gt;
	Long_Range = 0&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If Long_Range != 0&lt;br /&gt;
	Damage = Damage / 2&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If Target is Defending&lt;br /&gt;
	Damage = Damage / 2&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If Target's Back is exposed&lt;br /&gt;
	Damage = Damage * ( Target's Back Attack Modifier / 8 )&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If Actor's Statuses includes Frog&lt;br /&gt;
	Damage = Damage / 4&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
Damage = Sadness( Damage )&lt;br /&gt;
Damage = Split( Damage, 0 )&lt;br /&gt;
Damage = Barrier( Damage )&lt;br /&gt;
  &lt;br /&gt;
If Actor's Statuses include Mini&lt;br /&gt;
	Damage = 0&lt;br /&gt;
End If&lt;br /&gt;
Damage = Variance( Damage )&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X2:===&lt;br /&gt;
''0x5DE9B8''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
multiNoSplit = ( ( ( Attack's Target Flags AND Ch ) - 4 ) == 0 ? 1 : 0 )&lt;br /&gt;
Base = (Actor's Attack + Actor's Level) * 6&lt;br /&gt;
Damage = (512 - Target's Defense) * Base * Attack's Power / 8192&lt;br /&gt;
Damage = Sadness( Damage )&lt;br /&gt;
Damage = SplitDamage( Damage, multiNoSplit )&lt;br /&gt;
Damage = Barrier( Damage )&lt;br /&gt;
Damage = Variance( Damage )&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X3:===&lt;br /&gt;
''0x5DEA6D''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If Attack Properties Damage MP is clear&lt;br /&gt;
	Damage = Target's HP&lt;br /&gt;
Else&lt;br /&gt;
	Damage = Target's MP&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
Damage = Damage * Attack's Power / 32&lt;br /&gt;
&lt;br /&gt;
If ActionData[AC] != 0 (?)&lt;br /&gt;
	Damage = Damage / 2&lt;br /&gt;
End If&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X4:===&lt;br /&gt;
''0x5DEAF7''&lt;br /&gt;
&amp;lt;pre&amp;gt;If Attack Properties Damage MP is clear&lt;br /&gt;
	Damage = Target's MHP&lt;br /&gt;
Else&lt;br /&gt;
	Damage = Target's MMP&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
Damage = Damage * Attack's Power / 32&lt;br /&gt;
&lt;br /&gt;
If ActionData[AC] != 0 (?)&lt;br /&gt;
	Damage = Damage / 2&lt;br /&gt;
End If&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X5:===&lt;br /&gt;
''0x5DEB81''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Damage = (Actor's (M)Attack + Actor's Level) * 6 + (Attack's Power * 22)&lt;br /&gt;
Damage = SplitDamage( Damage )&lt;br /&gt;
Damage = Barrier( Damage )&lt;br /&gt;
Damage = Variance( Damage )&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X6:===&lt;br /&gt;
''0x5DEBE5''&lt;br /&gt;
&amp;lt;pre&amp;gt;Damage = Attack's Power * 20&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X7:===&lt;br /&gt;
''0x5DEC0A''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Damage = ( ( 512 - Target's Def ) * Attack's Power / 32 )&lt;br /&gt;
Damage = Variance( Damage )&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X8:===&lt;br /&gt;
''0x5DEC52''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If ActionData[0x230] AND 40h&lt;br /&gt;
	ActionData[0x230] = 1&lt;br /&gt;
Else&lt;br /&gt;
	ActionData[0x230] = 80h&lt;br /&gt;
End If&lt;br /&gt;
//presumably this checks if the target heals from restore element and will either recover or kill based on the result&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X9:===&lt;br /&gt;
''0x5DEC8A''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Actor's Attack = Actor's Strength * 2&lt;br /&gt;
Use Damage X1 with adjusted stat&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XA:===&lt;br /&gt;
''0x5DECAA''&lt;br /&gt;
&amp;lt;pre&amp;gt;Damage = ( Attack's Power + Number of Targets - 1 ) / Number of Targets&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Additional Checks==&lt;br /&gt;
===Sadness( Damage )===&lt;br /&gt;
''0x5DE958''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If Target's Status includes Sadness&lt;br /&gt;
	Damage = Damage - (Damage * 3 / 10)&lt;br /&gt;
End If&lt;br /&gt;
Return Damage&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SplitDamage( Damage, multiNoSplit )===&lt;br /&gt;
''0x5DE8F4''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If multiNoSplit == 0&lt;br /&gt;
	If No. of Attack's Targets &amp;gt;= 2&lt;br /&gt;
		Set Attack's split damage Target Flag&lt;br /&gt;
	Else&lt;br /&gt;
		Set multiNoSplit == 1&lt;br /&gt;
	End If&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If ActionData[0xAC] == 0&lt;br /&gt;
	Damage = Damage / 2&lt;br /&gt;
Else&lt;br /&gt;
	If multiNoSplit == 0&lt;br /&gt;
		Damage = Damage * 3 / 2&lt;br /&gt;
	End If&lt;br /&gt;
End If&lt;br /&gt;
Return Damage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Barrier( Damage )===&lt;br /&gt;
''0x5DE82C''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If Attack Property &amp;quot;Physical&amp;quot; is 0&lt;br /&gt;
	If Target's Statuses include MBarrier&lt;br /&gt;
		Set ActionData &amp;quot;MBarrier Active&amp;quot; flag&lt;br /&gt;
	End If&lt;br /&gt;
Else&lt;br /&gt;
	If Target's Statuses include Barrier&lt;br /&gt;
		Set ActionData &amp;quot;Barrier Active&amp;quot; flag&lt;br /&gt;
	End If&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If ActionData &amp;quot;MBarrier Active&amp;quot; or &amp;quot;Barrier Active&amp;quot; flags are set&lt;br /&gt;
	Damage = Damage / 2&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If attack is Magic and EnabledMagic[7] == 0 (?)&lt;br /&gt;
	Damage = Damage + ( Damage * ( EnabledMagic[7] * (10 / 32) ) / 100 )&lt;br /&gt;
End If&lt;br /&gt;
Return Damage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Variance( Damage ):===&lt;br /&gt;
''0x5DE988''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Damage = Damage ([0..255] + 3841) &amp;gt;&amp;gt; 12  //from RNGLUT in KERNEL.BIN&lt;br /&gt;
//Again, we have another chance for overflow.&lt;br /&gt;
&lt;br /&gt;
If Damage == 0&lt;br /&gt;
	Damage == 1&lt;br /&gt;
End If&lt;br /&gt;
Return Damage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Secondary Damage Formulae==&lt;br /&gt;
===X0:===&lt;br /&gt;
''0x5DECFB''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Damage = Attacker's HP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===X1:===&lt;br /&gt;
''5DED1E''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Damage = Attacker's MHP - Attacker's HP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===X8:===&lt;br /&gt;
''0x5DED73''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dice_Count = Attacker's Level / 10&lt;br /&gt;
&lt;br /&gt;
If Dice_Count &amp;lt; 2 then&lt;br /&gt;
	Dice_Count = 2&lt;br /&gt;
Elseif Dice_Count &amp;gt; 6&lt;br /&gt;
	Dice_Count = 6&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
total_dice_roll = 0&lt;br /&gt;
For ( d_loop = 0; d_loop &amp;lt; Dice_Count; d_loop++ )&lt;br /&gt;
	die = [0..5]&lt;br /&gt;
	all_dice[d_loop] = die&lt;br /&gt;
	total_dice_roll += die + 1&lt;br /&gt;
&lt;br /&gt;
	set die visualization based on roll&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
value_repeat = 0&lt;br /&gt;
For ( d_value = 0; d_value &amp;lt; 6; d_value++ )&lt;br /&gt;
&lt;br /&gt;
	repeat_count = 0&lt;br /&gt;
	For ( d_loop = 0; d_loop &amp;lt; Dice_Count; d_loop++ )&lt;br /&gt;
&lt;br /&gt;
		If all_dice[d_loop] = d_value then&lt;br /&gt;
			repeat_count++&lt;br /&gt;
		End If&lt;br /&gt;
	Loop&lt;br /&gt;
&lt;br /&gt;
	If repeat_count &amp;gt; value_repeat then&lt;br /&gt;
		value_repeat = repeat_count&lt;br /&gt;
	End If&lt;br /&gt;
&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
Damage = value_repeat * 100 * total_dice_roll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===X9===&lt;br /&gt;
''0x5DEEEF''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Damage = Number of Successful Escapes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===XA===&lt;br /&gt;
''0x5DEF1D''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Damage = Target's HP - 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===XB===&lt;br /&gt;
''0x5DEF44''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Damage = (Game Time Hours * 100) + (Game Time Minutes)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===XC===&lt;br /&gt;
''0x5DEF88''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Damage = Target's Kill Count * 10&lt;br /&gt;
//This is intended to be used only on players&lt;br /&gt;
//This will cause a memory leak if done on enemies&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===XD===&lt;br /&gt;
''0x5DEFDD''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If target is playable character&lt;br /&gt;
	MateriaCount = 0;&lt;br /&gt;
	For ( MateriaLoop = 0; MateriaLoop &amp;lt; 8; MateriaLoop++ )&lt;br /&gt;
		If target has materia in weapon slot [MateriaLoop] then MateriaCount++&lt;br /&gt;
		If target has materia in armor slot [MateriaLoop] then MateriaCount++&lt;br /&gt;
	Loop&lt;br /&gt;
	Damage = MateriaCount * 1111&lt;br /&gt;
End If&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Accuracy Functions=&lt;br /&gt;
The point of these is to set the &amp;quot;attack will miss&amp;quot; flag in the current action memory structure.&lt;br /&gt;
&lt;br /&gt;
===0: Physical Accuracy Check===&lt;br /&gt;
''0x5DDBB0''&lt;br /&gt;
&amp;lt;pre&amp;gt;;For the purposes of this code, &amp;quot;Dex&amp;quot; means the adjusted Dexterity of the actor/target if any in-battle dex bonuses have been granted.&lt;br /&gt;
;Same holds for the Physical Evade. Physical Hit rate has no in-game bonus opportunities.&lt;br /&gt;
&lt;br /&gt;
Check_For_Cover()&lt;br /&gt;
&lt;br /&gt;
HitChance = -1;&lt;br /&gt;
&lt;br /&gt;
If &amp;quot;Always connect&amp;quot; flag set then HitChance = 255;&lt;br /&gt;
&lt;br /&gt;
If target has one of the following statuses (Death, Sleep, Confu, Stop, Petrify, Manipulate, Paralysis) then&lt;br /&gt;
	Remove Sleep status&lt;br /&gt;
	Remove Confu status&lt;br /&gt;
	Remove Manipulate status&lt;br /&gt;
	HitChance = 255&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If action is flagged as &amp;quot;always hit&amp;quot; then HitChance = 255;&lt;br /&gt;
&lt;br /&gt;
Physical Chance = (Actor's Dex &amp;gt;&amp;gt; 2) + action physical hit rate&lt;br /&gt;
Actor's evade = (Actor's Dex &amp;gt;&amp;gt; 2) + Actor's Physical evade&lt;br /&gt;
Target's evade = (Target's Dex &amp;gt;&amp;gt; 2) + Target's Physical evade&lt;br /&gt;
&lt;br /&gt;
If HitChance = -1 Then&lt;br /&gt;
	HitChance = Physical Chance + Actor's evade - Target's evade&lt;br /&gt;
	HitChance = FuryAdjust(HitChance)&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If HitChance = 0 then HitChance = 1&lt;br /&gt;
&lt;br /&gt;
Luck Chance = [0..99]&lt;br /&gt;
If (Actor's Luck / 4) &amp;gt; Luck Chance Then&lt;br /&gt;
	HitChance = 255 ;Lucky Hit&lt;br /&gt;
Else&lt;br /&gt;
	If Actor is Player Character targetting an enemy Then&lt;br /&gt;
		If (Target's Luck / 4) &amp;gt; Luck Chance&lt;br /&gt;
			HitChance = 0 ;Lucky Dodge&lt;br /&gt;
		End If&lt;br /&gt;
	End If&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
Miss Chance = (([0..65535] * 99) / 65535) + 1 ;essentially [1..100]&lt;br /&gt;
if HitChance &amp;lt; Miss Chance then&lt;br /&gt;
	Set Miss flag&lt;br /&gt;
End IF&lt;br /&gt;
&lt;br /&gt;
Check_For_Cover() {&lt;br /&gt;
	This is where the game checks if the target is covered under a &amp;quot;cover&amp;quot;ing ally.&lt;br /&gt;
	It only applies to Player Characters&lt;br /&gt;
	It might be more complicated that I'm seeing, but that is definitely ONE of its functions&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
FuryAdjust(HitChance) {&lt;br /&gt;
	If HitChance &amp;lt; 255 then &lt;br /&gt;
		If Actor is in Fury Status&lt;br /&gt;
			HitChance = HitChance - ((HitChance * 3) / 10)&lt;br /&gt;
		End If&lt;br /&gt;
	End If&lt;br /&gt;
	return HitChance&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===1: Magical Accuracy Check===&lt;br /&gt;
''0x5DDE5E''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acc = Action's Accuracy&lt;br /&gt;
tar_save = level / 2; //rounded down&lt;br /&gt;
acc_bonus = actor's level - tar_save&lt;br /&gt;
rand_0 = [0..99]&lt;br /&gt;
rand_1 = [0..99]&lt;br /&gt;
if acc &amp;lt; 255 then&lt;br /&gt;
   if target does not have instant-death, null, or heal properties to current attack then&lt;br /&gt;
      if attack is not (reflectable and target in reflect status) then&lt;br /&gt;
         if attack does not inflict statuses or inflicting status include: Death, Sleep, Confu, Stop, Petrify, or Paralysis then&lt;br /&gt;
            acc = Fury_Adj( acc );&lt;br /&gt;
            if target's M_Evade &amp;gt; rand_0 OR&lt;br /&gt;
                acc + acc_bonus &amp;lt; rand_1 then&lt;br /&gt;
               Set action miss flag&lt;br /&gt;
            end if&lt;br /&gt;
         end if&lt;br /&gt;
      end if&lt;br /&gt;
   end if&lt;br /&gt;
end if&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===2: Critical Hit Check===&lt;br /&gt;
''0x5DDF8E''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If attack does not miss then&lt;br /&gt;
   if actor in lucky girl status then&lt;br /&gt;
      critical_chance = 255&lt;br /&gt;
   else&lt;br /&gt;
      critical_chance = ((actor's luck + actor's level) - target's level ) &amp;gt;&amp;gt; 2;&lt;br /&gt;
      if actor is playable character then&lt;br /&gt;
         critical_chance += weapon's critical bonus //?&lt;br /&gt;
      end if&lt;br /&gt;
      Critical_random = ( ( [0..65535] * 99 ) / 65535 ) + 1;&lt;br /&gt;
      if critical_chance &amp;gt; critical_random then&lt;br /&gt;
         attack set to critical&lt;br /&gt;
      end if&lt;br /&gt;
   end if&lt;br /&gt;
end if&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3, 4, and 5 don't exist. Since they don't set miss they will always hit.&lt;br /&gt;
&lt;br /&gt;
===6: Manipulate Accuracy (intended solely for playable characters)===&lt;br /&gt;
''0x5DE0D0''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int ally_loop;&lt;br /&gt;
ManipSuccess = 0;&lt;br /&gt;
for ( ally_loop = 0; ally_loop &amp;lt; 3; ally_loop++ )&lt;br /&gt;
{&lt;br /&gt;
   if target is currently under manipulation by an actor then&lt;br /&gt;
      break;&lt;br /&gt;
   end if&lt;br /&gt;
}&lt;br /&gt;
if target is not currently being manipulated AND&lt;br /&gt;
    target is not a playable character AND&lt;br /&gt;
    target is an enemy AND&lt;br /&gt;
    actor is not currently manipulating an enemy AND&lt;br /&gt;
    target is not under manipulate status AND&lt;br /&gt;
    target's timer bar is running AND //like they're not stopped, petrified, etc&lt;br /&gt;
    target's attack resistance is &amp;quot;always-hit&amp;quot; then //?&lt;br /&gt;
   Manip_Chance = actor's level + 50 - target's level; //no less than 0&lt;br /&gt;
   if target count &amp;gt; 1 then&lt;br /&gt;
      Manip_Chance = ( Manip_Chance &amp;lt;&amp;lt; 2 ) / 5;&lt;br /&gt;
   end if&lt;br /&gt;
   if actor's [0xAC] == 0 then&lt;br /&gt;
      Manip_Chance &amp;gt;&amp;gt; 1;&lt;br /&gt;
   end if&lt;br /&gt;
   if target's attack resistance is &amp;quot;always-hit&amp;quot; then&lt;br /&gt;
      Manip_Chance = 255;&lt;br /&gt;
   end if&lt;br /&gt;
   if actor's accessory property == 5 //&amp;quot;Increase manip rate&amp;quot; property on Hypnocrown&lt;br /&gt;
      if Manip_Chance &amp;lt; 100 then&lt;br /&gt;
         Manip_Chance = 100;&lt;br /&gt;
      end if&lt;br /&gt;
   end if&lt;br /&gt;
   If Manip_Chance &amp;gt; [0..99] then&lt;br /&gt;
      ManipSuccess = 1;&lt;br /&gt;
   end if&lt;br /&gt;
end if&lt;br /&gt;
If ManipSuccess == 1 then&lt;br /&gt;
   Set actor's manipulated enemy to target&lt;br /&gt;
   Display String 5Ah {&amp;quot;Manipulated &amp;lt;Enemy&amp;gt;&amp;quot;}&lt;br /&gt;
   Clear Actor's 0xE4 value //unknown&lt;br /&gt;
else&lt;br /&gt;
   Set attack missed&lt;br /&gt;
end if&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This doesn't actually place the target in the manipulate status. That happens elsewhere.&lt;br /&gt;
&lt;br /&gt;
===7: Level-based Accuracy===&lt;br /&gt;
''0x5DE08A''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If Action's Accuracy &amp;gt; 0 then&lt;br /&gt;
   If the remainder of ( Target's level / Action accuracy ) is non-zero then&lt;br /&gt;
      Set attack missed&lt;br /&gt;
   end if&lt;br /&gt;
end if&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So if the accuracy IS 0, then it will always hit. This is to prevent a divide by zero error.&lt;/div&gt;</summary>
		<author><name>NFITC1</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.ffrtt.ru/index.php?title=FF7/DamageFormula&amp;diff=5883</id>
		<title>FF7/DamageFormula</title>
		<link rel="alternate" type="text/html" href="https://wiki.ffrtt.ru/index.php?title=FF7/DamageFormula&amp;diff=5883"/>
		<updated>2021-05-17T16:49:55Z</updated>

		<summary type="html">&lt;p&gt;NFITC1: /* 0: Physical Accuracy Check */ Added pseudocode for physical accuracy check&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Accuracy Function considerations==&lt;br /&gt;
Each of the upper nybble of the damage calculation determines what checks are done to accuracy of the action and whether or not it will connect, be critical or miss. Here are the functions in order processed based on the upper nybble:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; style=&amp;quot;border: 1px solid black; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Upper Nybble&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204)&amp;quot; | Functions&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| None (always hits)&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| [[FF7/DamageFormula#0:_Physical_Accuracy_Check|Physical Accuracy]], [[FF7/DamageFormula#2:_Critical_Hit_Check|Critical Check]]&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| [[FF7/DamageFormula#1:_Magical_Accuracy_Check|Magical Accuracy]]&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Dummy [3] (always hits)&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Dummy [4] (always hits)&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Dummy [5] (always hits)&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| [[FF7/DamageFormula#0:_Physical_Accuracy_Check|Physical Accuracy]], [[FF7/DamageFormula#2:_Critical_Hit_Check|Critical Check]]&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| [[FF7/DamageFormula#1:_Magical_Accuracy_Check|Magical Accuracy]]&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| [[FF7/DamageFormula#7:_Level-based_Accuracy|Level-based Accuracy]]&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| [[FF7/DamageFormula#6:_Manipulate_Accuracy_.28intended_solely_for_playable_characters.29|Manipulate]]&lt;br /&gt;
|-&lt;br /&gt;
| A&lt;br /&gt;
| [[FF7/DamageFormula#0:_Physical_Accuracy_Check|Physical Accuracy]], [[FF7/DamageFormula#2:_Critical_Hit_Check|Critical Check]]&lt;br /&gt;
|-&lt;br /&gt;
| B&lt;br /&gt;
| [[FF7/DamageFormula#0:_Physical_Accuracy_Check|Physical Accuracy]]&lt;br /&gt;
|-&lt;br /&gt;
| C&lt;br /&gt;
| None (always hits)&lt;br /&gt;
|-&lt;br /&gt;
| D&lt;br /&gt;
| None (always hits)&lt;br /&gt;
|-&lt;br /&gt;
| E&lt;br /&gt;
| None (always hits)&lt;br /&gt;
|-&lt;br /&gt;
| F&lt;br /&gt;
| None (always hits)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Damage Calculations=&lt;br /&gt;
These are the damage functions according to an unmodded FF7-ENG 1.02 (1998)&lt;br /&gt;
==Standard Formulae==&lt;br /&gt;
===X0:===&lt;br /&gt;
''0x5DE5C0''&lt;br /&gt;
&amp;lt;pre&amp;gt;Sets Target's 02h flag to 1. (Unknown effect)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X1:===&lt;br /&gt;
''0x5DE5DF''&lt;br /&gt;
&amp;lt;pre&amp;gt;If Attack Property &amp;quot;Always Critical&amp;quot; is Set&lt;br /&gt;
	Set Critical Damage Flag&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
x = ( Actor's Level * Actor's (M)Attack ) / 32&lt;br /&gt;
y = ( Actor's Level + Actor's (M)Attack ) / 32&lt;br /&gt;
z = Actor's (M)Attack + ( x * y )&lt;br /&gt;
z = z * ( 512 - target's defense ) * Attack's Power&lt;br /&gt;
Damage = z &amp;gt;&amp;gt; 13&lt;br /&gt;
//This is a bit-shift left by 13 which is mathematically equivalent to dividing by 8192, but it's important to note that it doesn't actually divide as this is the source of the damage overflow glitch&lt;br /&gt;
&lt;br /&gt;
If Critical Damage Flag is set&lt;br /&gt;
	Damage = Damage * 2&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If Actor's Statuses include Berserk&lt;br /&gt;
	Damage = Damage * 3 / 2&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
Long_Range = 0&lt;br /&gt;
If Target is in Back Row&lt;br /&gt;
	Set Long_Range = 1&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If Attack is Short Range OR Command is Enemy Attack&lt;br /&gt;
	If Actor is in Back Row&lt;br /&gt;
		Long_Range = 1&lt;br /&gt;
	End If&lt;br /&gt;
Else&lt;br /&gt;
	Long_Range = 0&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If Long_Range != 0&lt;br /&gt;
	Damage = Damage / 2&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If Target is Defending&lt;br /&gt;
	Damage = Damage / 2&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If Target's Back is exposed&lt;br /&gt;
	Damage = Damage * ( Target's Back Attack Modifier / 8 )&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If Actor's Statuses includes Frog&lt;br /&gt;
	Damage = Damage / 4&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
Damage = Sadness( Damage )&lt;br /&gt;
Damage = Split( Damage, 0 )&lt;br /&gt;
Damage = Barrier( Damage )&lt;br /&gt;
  &lt;br /&gt;
If Actor's Statuses include Mini&lt;br /&gt;
	Damage = 0&lt;br /&gt;
End If&lt;br /&gt;
Damage = Variance( Damage )&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X2:===&lt;br /&gt;
''0x5DE9B8''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
multiNoSplit = ( ( ( Attack's Target Flags AND Ch ) - 4 ) == 0 ? 1 : 0 )&lt;br /&gt;
Base = (Actor's Attack + Actor's Level) * 6&lt;br /&gt;
Damage = (512 - Target's Defense) * Base * Attack's Power / 8192&lt;br /&gt;
Damage = Sadness( Damage )&lt;br /&gt;
Damage = SplitDamage( Damage, multiNoSplit )&lt;br /&gt;
Damage = Barrier( Damage )&lt;br /&gt;
Damage = Variance( Damage )&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X3:===&lt;br /&gt;
''0x5DEA6D''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If Attack Properties Damage MP is clear&lt;br /&gt;
	Damage = Target's HP&lt;br /&gt;
Else&lt;br /&gt;
	Damage = Target's MP&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
Damage = Damage * Attack's Power / 32&lt;br /&gt;
&lt;br /&gt;
If ActionData[AC] != 0 (?)&lt;br /&gt;
	Damage = Damage / 2&lt;br /&gt;
End If&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X4:===&lt;br /&gt;
''0x5DEAF7''&lt;br /&gt;
&amp;lt;pre&amp;gt;If Attack Properties Damage MP is clear&lt;br /&gt;
	Damage = Target's MHP&lt;br /&gt;
Else&lt;br /&gt;
	Damage = Target's MMP&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
Damage = Damage * Attack's Power / 32&lt;br /&gt;
&lt;br /&gt;
If ActionData[AC] != 0 (?)&lt;br /&gt;
	Damage = Damage / 2&lt;br /&gt;
End If&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X5:===&lt;br /&gt;
''0x5DEB81''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Damage = (Actor's (M)Attack + Actor's Level) * 6 + (Attack's Power * 22)&lt;br /&gt;
Damage = SplitDamage( Damage )&lt;br /&gt;
Damage = Barrier( Damage )&lt;br /&gt;
Damage = Variance( Damage )&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X6:===&lt;br /&gt;
''0x5DEBE5''&lt;br /&gt;
&amp;lt;pre&amp;gt;Damage = Attack's Power * 20&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X7:===&lt;br /&gt;
''0x5DEC0A''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Damage = ( ( 512 - Target's Def ) * Attack's Power / 32 )&lt;br /&gt;
Damage = Variance( Damage )&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X8:===&lt;br /&gt;
''0x5DEC52''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If ActionData[0x230] AND 40h&lt;br /&gt;
	ActionData[0x230] = 1&lt;br /&gt;
Else&lt;br /&gt;
	ActionData[0x230] = 80h&lt;br /&gt;
End If&lt;br /&gt;
//presumably this checks if the target heals from restore element and will either recover or kill based on the result&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===X9:===&lt;br /&gt;
''0x5DEC8A''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Actor's Attack = Actor's Strength * 2&lt;br /&gt;
Use Damage X1 with adjusted stat&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XA:===&lt;br /&gt;
''0x5DECAA''&lt;br /&gt;
&amp;lt;pre&amp;gt;Damage = ( Attack's Power + Number of Targets - 1 ) / Number of Targets&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Additional Checks==&lt;br /&gt;
===Sadness( Damage )===&lt;br /&gt;
''0x5DE958''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If Target's Status includes Sadness&lt;br /&gt;
	Damage = Damage - (Damage * 3 / 10)&lt;br /&gt;
End If&lt;br /&gt;
Return Damage&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SplitDamage( Damage, multiNoSplit )===&lt;br /&gt;
''0x5DE8F4''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If multiNoSplit == 0&lt;br /&gt;
	If No. of Attack's Targets &amp;gt;= 2&lt;br /&gt;
		Set Attack's split damage Target Flag&lt;br /&gt;
	Else&lt;br /&gt;
		Set multiNoSplit == 1&lt;br /&gt;
	End If&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If ActionData[0xAC] == 0&lt;br /&gt;
	Damage = Damage / 2&lt;br /&gt;
Else&lt;br /&gt;
	If multiNoSplit == 0&lt;br /&gt;
		Damage = Damage * 3 / 2&lt;br /&gt;
	End If&lt;br /&gt;
End If&lt;br /&gt;
Return Damage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Barrier( Damage )===&lt;br /&gt;
''0x5DE82C''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If Attack Property &amp;quot;Physical&amp;quot; is 0&lt;br /&gt;
	If Target's Statuses include MBarrier&lt;br /&gt;
		Set ActionData &amp;quot;MBarrier Active&amp;quot; flag&lt;br /&gt;
	End If&lt;br /&gt;
Else&lt;br /&gt;
	If Target's Statuses include Barrier&lt;br /&gt;
		Set ActionData &amp;quot;Barrier Active&amp;quot; flag&lt;br /&gt;
	End If&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If ActionData &amp;quot;MBarrier Active&amp;quot; or &amp;quot;Barrier Active&amp;quot; flags are set&lt;br /&gt;
	Damage = Damage / 2&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If attack is Magic and EnabledMagic[7] == 0 (?)&lt;br /&gt;
	Damage = Damage + ( Damage * ( EnabledMagic[7] * (10 / 32) ) / 100 )&lt;br /&gt;
End If&lt;br /&gt;
Return Damage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Variance( Damage ):===&lt;br /&gt;
''0x5DE988''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Damage = Damage ([0..255] + 3841) &amp;gt;&amp;gt; 12  //from RNGLUT in KERNEL.BIN&lt;br /&gt;
//Again, we have another chance for overflow.&lt;br /&gt;
&lt;br /&gt;
If Damage == 0&lt;br /&gt;
	Damage == 1&lt;br /&gt;
End If&lt;br /&gt;
Return Damage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Secondary Damage Formulae==&lt;br /&gt;
===X0:===&lt;br /&gt;
''0x5DECFB''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Damage = Attacker's HP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===X1:===&lt;br /&gt;
''5DED1E''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Damage = Attacker's MHP - Attacker's HP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===X8:===&lt;br /&gt;
''0x5DED73''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dice_Count = Attacker's Level / 10&lt;br /&gt;
&lt;br /&gt;
If Dice_Count &amp;lt; 2 then&lt;br /&gt;
	Dice_Count = 2&lt;br /&gt;
Elseif Dice_Count &amp;gt; 6&lt;br /&gt;
	Dice_Count = 6&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
total_dice_roll = 0&lt;br /&gt;
For ( d_loop = 0; d_loop &amp;lt; Dice_Count; d_loop++ )&lt;br /&gt;
	die = [0..5]&lt;br /&gt;
	all_dice[d_loop] = die&lt;br /&gt;
	total_dice_roll += die + 1&lt;br /&gt;
&lt;br /&gt;
	set die visualization based on roll&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
value_repeat = 0&lt;br /&gt;
For ( d_value = 0; d_value &amp;lt; 6; d_value++ )&lt;br /&gt;
&lt;br /&gt;
	repeat_count = 0&lt;br /&gt;
	For ( d_loop = 0; d_loop &amp;lt; Dice_Count; d_loop++ )&lt;br /&gt;
&lt;br /&gt;
		If all_dice[d_loop] = d_value then&lt;br /&gt;
			repeat_count++&lt;br /&gt;
		End If&lt;br /&gt;
	Loop&lt;br /&gt;
&lt;br /&gt;
	If repeat_count &amp;gt; value_repeat then&lt;br /&gt;
		value_repeat = repeat_count&lt;br /&gt;
	End If&lt;br /&gt;
&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
Damage = value_repeat * 100 * total_dice_roll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===X9===&lt;br /&gt;
''0x5DEEEF''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Damage = Number of Successful Escapes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===XA===&lt;br /&gt;
''0x5DEF1D''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Damage = Target's HP - 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===XB===&lt;br /&gt;
''0x5DEF44''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Damage = (Game Time Hours * 100) + (Game Time Minutes)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===XC===&lt;br /&gt;
''0x5DEF88''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Damage = Target's Kill Count * 10&lt;br /&gt;
//This is intended to be used only on players&lt;br /&gt;
//This will cause a memory leak if done on enemies&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===XD===&lt;br /&gt;
''0x5DEFDD''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If target is playable character&lt;br /&gt;
	MateriaCount = 0;&lt;br /&gt;
	For ( MateriaLoop = 0; MateriaLoop &amp;lt; 8; MateriaLoop++ )&lt;br /&gt;
		If target has materia in weapon slot [MateriaLoop] then MateriaCount++&lt;br /&gt;
		If target has materia in armor slot [MateriaLoop] then MateriaCount++&lt;br /&gt;
	Loop&lt;br /&gt;
	Damage = MateriaCount * 1111&lt;br /&gt;
End If&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Accuracy Functions=&lt;br /&gt;
The point of these is to set the &amp;quot;attack will miss&amp;quot; flag in the current action memory structure.&lt;br /&gt;
&lt;br /&gt;
===0: Physical Accuracy Check===&lt;br /&gt;
''0x5DDBB0''&lt;br /&gt;
&amp;lt;pre&amp;gt;;For the purposes of this code, &amp;quot;Dex&amp;quot; means the adjusted Dexterity of the actor/target if any in-battle dex bonuses have been granted.&lt;br /&gt;
;Same holds for the Physical Evade. Physical Hit rate has no in-game bonus opportunities.&lt;br /&gt;
&lt;br /&gt;
Check_For_Cover()&lt;br /&gt;
&lt;br /&gt;
HitChance = -1;&lt;br /&gt;
&lt;br /&gt;
If &amp;quot;Always connect&amp;quot; flag set then HitChance = 255;&lt;br /&gt;
&lt;br /&gt;
If target has one of the following statuses (Death, Sleep, Confu, Stop, Petrify, Manipulate, Paralysis) then&lt;br /&gt;
	Remove Sleep status&lt;br /&gt;
	Remove Confu status&lt;br /&gt;
	Remove Manipulate status&lt;br /&gt;
	HitChance = 255&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If action is flagged as &amp;quot;always hit&amp;quot; then HitChance = 255;&lt;br /&gt;
&lt;br /&gt;
Physical Chance = (Actor's Dex &amp;gt;&amp;gt; 2) + action physical hit rate&lt;br /&gt;
Actor's evade = (Actor's Dex &amp;gt;&amp;gt; 2) + Actor's Physical evade&lt;br /&gt;
Target's evade = (Target's Dex &amp;gt;&amp;gt; 2) + Target's Physical evade&lt;br /&gt;
&lt;br /&gt;
If HitChance = -1 Then&lt;br /&gt;
	HitChance = Physical Chance + Actor's evade - Target's evade&lt;br /&gt;
	HitChance = FuryAdjust(HitChance)&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
If HitChance = 0 then HitChance = 1&lt;br /&gt;
&lt;br /&gt;
Luck Chance = [0..99]&lt;br /&gt;
If (Actor's Luck / 4) &amp;gt; Luck Chance Then&lt;br /&gt;
	HitChance = 255 ;Lucky Hit&lt;br /&gt;
Else&lt;br /&gt;
	If Actor is Player Character targetting an enemy Then&lt;br /&gt;
		If (Target's Luck / 4) &amp;gt; Luck Chance&lt;br /&gt;
			HitChance = 0 ;Lucky Dodge&lt;br /&gt;
		End If&lt;br /&gt;
	End If&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
Miss Chance = (([0..65535] * 99) / 65535) + 1 ;essentially [1..100]&lt;br /&gt;
if HitChance &amp;gt; Miss Chance then&lt;br /&gt;
	Set Hit flag&lt;br /&gt;
Else&lt;br /&gt;
	Set Miss flag&lt;br /&gt;
End IF&lt;br /&gt;
&lt;br /&gt;
Check_For_Cover() {&lt;br /&gt;
	This is where the game checks if the target is covered under a &amp;quot;cover&amp;quot;ing ally.&lt;br /&gt;
	It only applies to Player Characters&lt;br /&gt;
	It might be more complicated that I'm seeing, but that is definitely ONE of its functions&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
FuryAdjust(HitChance) {&lt;br /&gt;
	If HitChance &amp;lt; 255 then &lt;br /&gt;
		If Actor is in Fury Status&lt;br /&gt;
			HitChance = HitChance - ((HitChance * 3) / 10)&lt;br /&gt;
		End If&lt;br /&gt;
	End If&lt;br /&gt;
	return HitChance&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===1: Magical Accuracy Check===&lt;br /&gt;
''0x5DDE5E''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acc = Action's Accuracy&lt;br /&gt;
tar_save = level / 2; //rounded down&lt;br /&gt;
acc_bonus = actor's level - tar_save&lt;br /&gt;
rand_0 = [0..99]&lt;br /&gt;
rand_1 = [0..99]&lt;br /&gt;
if acc &amp;lt; 255 then&lt;br /&gt;
   if target does not have instant-death, null, or heal properties to current attack then&lt;br /&gt;
      if attack is not (reflectable and target in reflect status) then&lt;br /&gt;
         if attack does not inflict statuses or inflicting status include: Death, Sleep, Confu, Stop, Petrify, or Paralysis then&lt;br /&gt;
            acc = Fury_Adj( acc );&lt;br /&gt;
            if target's M_Evade &amp;gt; rand_0 OR&lt;br /&gt;
                acc + acc_bonus &amp;lt; rand_1 then&lt;br /&gt;
               Set action miss flag&lt;br /&gt;
            end if&lt;br /&gt;
         end if&lt;br /&gt;
      end if&lt;br /&gt;
   end if&lt;br /&gt;
end if&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===2: Critical Hit Check===&lt;br /&gt;
''0x5DDF8E''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If attack does not miss then&lt;br /&gt;
   if actor in lucky girl status then&lt;br /&gt;
      critical_chance = 255&lt;br /&gt;
   else&lt;br /&gt;
      critical_chance = ((actor's luck + actor's level) - target's level ) &amp;gt;&amp;gt; 2;&lt;br /&gt;
      if actor is playable character then&lt;br /&gt;
         critical_chance += weapon's critical bonus //?&lt;br /&gt;
      end if&lt;br /&gt;
      Critical_random = ( ( [0..65535] * 99 ) / 65535 ) + 1;&lt;br /&gt;
      if critical_chance &amp;gt; critical_random then&lt;br /&gt;
         attack set to critical&lt;br /&gt;
      end if&lt;br /&gt;
   end if&lt;br /&gt;
end if&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3, 4, and 5 don't exist. Since they don't set miss they will always hit.&lt;br /&gt;
&lt;br /&gt;
===6: Manipulate Accuracy (intended solely for playable characters)===&lt;br /&gt;
''0x5DE0D0''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int ally_loop;&lt;br /&gt;
ManipSuccess = 0;&lt;br /&gt;
for ( ally_loop = 0; ally_loop &amp;lt; 3; ally_loop++ )&lt;br /&gt;
{&lt;br /&gt;
   if target is currently under manipulation by an actor then&lt;br /&gt;
      break;&lt;br /&gt;
   end if&lt;br /&gt;
}&lt;br /&gt;
if target is not currently being manipulated AND&lt;br /&gt;
    target is not a playable character AND&lt;br /&gt;
    target is an enemy AND&lt;br /&gt;
    actor is not currently manipulating an enemy AND&lt;br /&gt;
    target is not under manipulate status AND&lt;br /&gt;
    target's timer bar is running AND //like they're not stopped, petrified, etc&lt;br /&gt;
    target's attack resistance is &amp;quot;always-hit&amp;quot; then //?&lt;br /&gt;
   Manip_Chance = actor's level + 50 - target's level; //no less than 0&lt;br /&gt;
   if target count &amp;gt; 1 then&lt;br /&gt;
      Manip_Chance = ( Manip_Chance &amp;lt;&amp;lt; 2 ) / 5;&lt;br /&gt;
   end if&lt;br /&gt;
   if actor's [0xAC] == 0 then&lt;br /&gt;
      Manip_Chance &amp;gt;&amp;gt; 1;&lt;br /&gt;
   end if&lt;br /&gt;
   if target's attack resistance is &amp;quot;always-hit&amp;quot; then&lt;br /&gt;
      Manip_Chance = 255;&lt;br /&gt;
   end if&lt;br /&gt;
   if actor's accessory property == 5 //&amp;quot;Increase manip rate&amp;quot; property on Hypnocrown&lt;br /&gt;
      if Manip_Chance &amp;lt; 100 then&lt;br /&gt;
         Manip_Chance = 100;&lt;br /&gt;
      end if&lt;br /&gt;
   end if&lt;br /&gt;
   If Manip_Chance &amp;gt; [0..99] then&lt;br /&gt;
      ManipSuccess = 1;&lt;br /&gt;
   end if&lt;br /&gt;
end if&lt;br /&gt;
If ManipSuccess == 1 then&lt;br /&gt;
   Set actor's manipulated enemy to target&lt;br /&gt;
   Display String 5Ah {&amp;quot;Manipulated &amp;lt;Enemy&amp;gt;&amp;quot;}&lt;br /&gt;
   Clear Actor's 0xE4 value //unknown&lt;br /&gt;
else&lt;br /&gt;
   Set attack missed&lt;br /&gt;
end if&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This doesn't actually place the target in the manipulate status. That happens elsewhere.&lt;br /&gt;
&lt;br /&gt;
===7: Level-based Accuracy===&lt;br /&gt;
''0x5DE08A''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If Action's Accuracy &amp;gt; 0 then&lt;br /&gt;
   If the remainder of ( Target's level / Action accuracy ) is non-zero then&lt;br /&gt;
      Set attack missed&lt;br /&gt;
   end if&lt;br /&gt;
end if&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So if the accuracy IS 0, then it will always hit. This is to prevent a divide by zero error.&lt;/div&gt;</summary>
		<author><name>NFITC1</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.ffrtt.ru/index.php?title=FF7/Weapon_data&amp;diff=5854</id>
		<title>FF7/Weapon data</title>
		<link rel="alternate" type="text/html" href="https://wiki.ffrtt.ru/index.php?title=FF7/Weapon_data&amp;diff=5854"/>
		<updated>2020-12-08T23:42:25Z</updated>

		<summary type="html">&lt;p&gt;NFITC1: /* KERNEL.BIN - Section 6: Weapon data format */ Added switch to usage restriction mask&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== KERNEL.BIN - Section 6: Weapon data format ==&lt;br /&gt;
&lt;br /&gt;
This section contains the weapon data. Each weapon attribute is 44 bytes long. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;background: rgb(0,0,0)&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204); width=50px;&amp;quot; align=&amp;quot;center&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204); width=50px;&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204); width:350px;&amp;quot; colspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x00&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 1 byte&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | [[FF7/Battle/Targeting Data|Target Flags]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x01&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 1 byte&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | [[FF7/Battle/Attack Effect Id List|Attack Effect Id]]. Always 0xFF. Isn't used for weapon in game.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x02&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 1 byte&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | [[FF7/Battle/Damage Calculation|Damage Calculation]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x03&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 1 byte&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | Not used. Always 0xFF.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x04&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 1 byte&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | Weapon attack strength for damage formula.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x05&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 1 byte&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | [[FF7/Battle/Status Effects|Status Attack]]. This is index of status bit.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x06&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 1 byte&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | Materia growth rate (0, 1, 2, 3 for None, Normal, Double, Triple. All other values are &amp;quot;Normal&amp;quot; Growth)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x07&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 1 byte&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | Critical hit chance (%)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x08&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 1 byte&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | Weapon hit chance (%)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x09&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 1 byte&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | Weapon model&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(204,204,255)&amp;quot; align=&amp;quot;center&amp;quot; colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Upper nybble&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Attack animation modifier (For Barret and Vincent only)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Lower nybble&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Weapon model index&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,204);&amp;quot; align=&amp;quot;center&amp;quot; | 0x0A&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,204);&amp;quot; | 1 byte&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,204);&amp;quot; colspan=&amp;quot;2&amp;quot; | Alignment. Always 0xFF.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x0B&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 1 byte&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | Mask for access high sound id (0x100+).&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x0C&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 2 bytes&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | [[FF7/Battle/Camera Movement Id List|Camera Movement Id]]. Used for both single and multiple targeted attacks with this weapon. Always 0xFFFF.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x0E&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 2 bytes&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | Equip Mask&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(204,204,255)&amp;quot; align=&amp;quot;center&amp;quot; colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;11&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x0001&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Equipable on Cloud&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x0002&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Equipable on Barret&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x0004&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Equipable on Tifa&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x0008&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Equipable on Aeris&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x0010&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Equipable on Red XIII&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x0020&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Equipable on Yuffie&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x0040&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Equipable on Cait Sith&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x0080&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Equipable on Vincent&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x0100&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Equipable on Cid&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x0200&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Equipable on Young Cloud&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x0400&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Equipable on Sephiroth&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x10&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 2 bytes&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | [[FF7/Battle/Elemental_Data|Attack Element]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,204);&amp;quot; align=&amp;quot;center&amp;quot; | 0x12&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,204);&amp;quot; | 2 bytes&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,204);&amp;quot; colspan=&amp;quot;2&amp;quot; | Unknown [Always 0xFFFF]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x14&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 4 bytes&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | Increase Stat Type &lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(204,204,255)&amp;quot; align=&amp;quot;center&amp;quot; colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;7&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0xFF&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | None&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x00&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Strength&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x01&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Vitality&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x02&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Magic&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x03&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Spirit&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x04&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Dexterity&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x05&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Luck&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x18&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 4 bytes&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | Stat Amount Increased (Based on above)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x1C&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 8 bytes&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | Materia Slots &lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(204,204,255)&amp;quot; align=&amp;quot;center&amp;quot; colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;7&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x00&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | No Slot&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x01&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Empty Unlinked Slot (no growth-equips)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x02&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Empty Left Linked Slot (no growth-equips)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x03&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Empty Right Linked Slot (no growth-equips)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x05&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Unlinked Slot&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x06&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Left Linked Slot&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x07&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Right Linked Slot&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x24&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 1 bytes&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | [[FF7/Battle/Sound Effect Id List|Sound Effect Id]] for normal hit.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x25&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 1 bytes&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | [[FF7/Battle/Sound Effect Id List|Sound Effect Id]] for critical hit.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x26&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 1 bytes&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | [[FF7/Battle/Sound Effect Id List|Sound Effect Id]] for missed attack.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x27&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 1 byte&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | [[FF7/Battle/Impact Effect Id List|Impact Effect Id]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x28&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 2 bytes&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | [[FF7/Battle/Special Attack Flags|Special Attack Flags]]. Always 0xFFFF.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x2A&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 2 bytes&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | Restriction Mask (If the following bits are 0)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(204,204,255);&amp;quot; colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;5&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 01h&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Can be sold&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 02h&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Can be used in Battle&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 04h&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Can be used in Menu Out of Battle&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 08h&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Can be thrown in Battle&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | Other values have no effect&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>NFITC1</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.ffrtt.ru/index.php?title=FF7/Weapon_data&amp;diff=5853</id>
		<title>FF7/Weapon data</title>
		<link rel="alternate" type="text/html" href="https://wiki.ffrtt.ru/index.php?title=FF7/Weapon_data&amp;diff=5853"/>
		<updated>2020-12-08T23:41:34Z</updated>

		<summary type="html">&lt;p&gt;NFITC1: /* KERNEL.BIN - Section 6: Weapon data format */ Added switch to usage restriction mask&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== KERNEL.BIN - Section 6: Weapon data format ==&lt;br /&gt;
&lt;br /&gt;
This section contains the weapon data. Each weapon attribute is 44 bytes long. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;background: rgb(0,0,0)&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204); width=50px;&amp;quot; align=&amp;quot;center&amp;quot; | Offset&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204); width=50px;&amp;quot; | Length&lt;br /&gt;
! style=&amp;quot;background:rgb(204,204,204); width:350px;&amp;quot; colspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x00&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 1 byte&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | [[FF7/Battle/Targeting Data|Target Flags]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x01&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 1 byte&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | [[FF7/Battle/Attack Effect Id List|Attack Effect Id]]. Always 0xFF. Isn't used for weapon in game.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x02&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 1 byte&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | [[FF7/Battle/Damage Calculation|Damage Calculation]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x03&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 1 byte&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | Not used. Always 0xFF.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x04&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 1 byte&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | Weapon attack strength for damage formula.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x05&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 1 byte&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | [[FF7/Battle/Status Effects|Status Attack]]. This is index of status bit.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x06&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 1 byte&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | Materia growth rate (0, 1, 2, 3 for None, Normal, Double, Triple. All other values are &amp;quot;Normal&amp;quot; Growth)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x07&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 1 byte&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | Critical hit chance (%)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x08&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 1 byte&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | Weapon hit chance (%)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x09&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 1 byte&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | Weapon model&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(204,204,255)&amp;quot; align=&amp;quot;center&amp;quot; colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;2&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Upper nybble&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Attack animation modifier (For Barret and Vincent only)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Lower nybble&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Weapon model index&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,204);&amp;quot; align=&amp;quot;center&amp;quot; | 0x0A&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,204);&amp;quot; | 1 byte&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,204);&amp;quot; colspan=&amp;quot;2&amp;quot; | Alignment. Always 0xFF.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x0B&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 1 byte&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | Mask for access high sound id (0x100+).&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x0C&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 2 bytes&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | [[FF7/Battle/Camera Movement Id List|Camera Movement Id]]. Used for both single and multiple targeted attacks with this weapon. Always 0xFFFF.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x0E&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 2 bytes&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | Equip Mask&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(204,204,255)&amp;quot; align=&amp;quot;center&amp;quot; colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;11&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x0001&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Equipable on Cloud&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x0002&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Equipable on Barret&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x0004&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Equipable on Tifa&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x0008&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Equipable on Aeris&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x0010&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Equipable on Red XIII&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x0020&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Equipable on Yuffie&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x0040&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Equipable on Cait Sith&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x0080&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Equipable on Vincent&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x0100&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Equipable on Cid&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x0200&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Equipable on Young Cloud&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x0400&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Equipable on Sephiroth&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x10&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 2 bytes&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | [[FF7/Battle/Elemental_Data|Attack Element]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,204);&amp;quot; align=&amp;quot;center&amp;quot; | 0x12&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,204);&amp;quot; | 2 bytes&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,204);&amp;quot; colspan=&amp;quot;2&amp;quot; | Unknown [Always 0xFFFF]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x14&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 4 bytes&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | Increase Stat Type &lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(204,204,255)&amp;quot; align=&amp;quot;center&amp;quot; colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;7&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0xFF&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | None&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x00&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Strength&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x01&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Vitality&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x02&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Magic&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x03&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Spirit&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x04&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Dexterity&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x05&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Luck&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x18&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 4 bytes&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | Stat Amount Increased (Based on above)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x1C&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 8 bytes&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | Materia Slots &lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(204,204,255)&amp;quot; align=&amp;quot;center&amp;quot; colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;7&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x00&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | No Slot&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x01&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Empty Unlinked Slot (no growth-equips)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x02&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Empty Left Linked Slot (no growth-equips)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x03&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Empty Right Linked Slot (no growth-equips)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x05&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Unlinked Slot&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x06&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Left Linked Slot&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 0x07&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Right Linked Slot&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x24&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 1 bytes&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | [[FF7/Battle/Sound Effect Id List|Sound Effect Id]] for normal hit.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x25&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 1 bytes&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | [[FF7/Battle/Sound Effect Id List|Sound Effect Id]] for critical hit.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x26&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 1 bytes&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | [[FF7/Battle/Sound Effect Id List|Sound Effect Id]] for missed attack.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x27&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 1 byte&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | [[FF7/Battle/Impact Effect Id List|Impact Effect Id]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x28&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 2 bytes&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | [[FF7/Battle/Special Attack Flags|Special Attack Flags]]. Always 0xFFFF.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; align=&amp;quot;center&amp;quot; | 0x2A&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 2 bytes&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | Restriction Mask (If the following bits are 0)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(204,204,255);&amp;quot; colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;4&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 01h&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Can be sold&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 02h&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Can be used in Battle&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 04h&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Can be used in Menu Out of Battle&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | 08h&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; | Can be thrown in Battle&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background:rgb(255,255,255);&amp;quot; colspan=&amp;quot;2&amp;quot; | Other values have no effect&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>NFITC1</name></author>
		
	</entry>
</feed>